先看两个简单的代码
package com.itheima.create;
public class MethodDemo1 {
public static void main(String[] args) {
int c1=sum(10,30) ;
System.out.println(c1);
}
public static int sum(int a,int b){
int c = a + b;
return c;
}
}
#include <stdio.h>
int main()
{
int c=sum(10,30);
printf("%d",c);
return 0;
}
int sum(int a,int b)
{
int c = a + b ;
return c;
}
这是两个都是简单的求和,第一个是运用Java的方法,第二个是运用C语言的函数,可以看出来这两个是十分类似的,运行结果也是一样的,
遇到类似的东西,我们很容易去联系,去比较,来加深我们对它的理解。
(1)“函数”是一段实现某种“功能”的代码,函数的操作是对输入数据的处理。
函数的英文function恰恰有“功能”的含义,可以达到“见名知意”。通过函数的名称来实施函数调用。它能将一些数据(也就是参数)传递jQuery进行处理,然后返回一些数据(即函数的返回值),也可以没有返回值。所有传递给函数的数据都是显式传递的。而方法的参数传递通常是隐式的,它可以直接操作类内部的数据。
(2)“方法”也是一段完成某项功能的代码,也通过名字来进行调用,但它依赖于某个特定的对象。
例如,我们可以说“调用对象X的Y方法”,而不能说“调用Y方法”。简单来说,方法和对象相关;而函数和对象无关。
因为Java是一门完全面向对象编程的语言,所以在Java中只有方法。
C语言white面向过程的编程语言,所以在C语言中只有函数。
所以说作用大概是差不多的,都是执行一段代码完成一个操作,区别就在于操作是基于什么的,c因为其面向过程的特点,函数本身完成特定的操作,然后在整个程序不断的调用函数,而在java中方法是基于类的,而调用则是通过类的对象,使用起来更方便,而且更有意义。
学习语言的过程中,你会发现有很多东西都是通用的,Java语言是基于C语言发展而来的,我们可以在Java的学习中将一些内容与C语言进行对比,去理解,顺便复习一些知识。
Java方法的定义和使用
方法的目的:
1.提高代码的复用性和开发效率
2.让程序逻辑更加清晰
方法的定义格式:
修饰符 返回类型 方法名称([形参列表) {
方法体代码;(需要执行的功能代码)
return 返回值;
}
示例
public static int sum(int a,int b){
int c = a + b;
return c;
}
定义时返回值有两类:
1.void:没有返回值;
2.数据类型(基本类型,引用类型);
方法的调用格式
方法名(.....);
int sum = add (10,20);
System.out.println(sum);
方法重载:
方法名称相同,参数的类型和个数不同。
public class TestDemo {
public static void main(String[] args) {
//此时将根据参数的类型和个数的不同执行不同的方法体
System.out.println(add(100, 200));
System.out.println(add(30, 40, 50));
System.out.println(add(4.5, 2.1));
}
public static int add(int x, int y) {
return x + y;
}
//此时方法名称相同,参数的个数不同
public static int add(int x, int y, int z) {
return x + y + z;
}
public static double add(double x, double y) {
return x + y;
}
}
方法递归调用
方法自己调用自己的形式。
//1到100累加
public class TestDemo {
public static void main(String[] args) {
System.out.println(sum(100));
}
public static int sum(int num) {
if(num == 1)
return 1;
return num + sum(--num);
}
}
[main()调用] 第1次执行sum()方法 return 100 + sum(99);
[sum()递归] 第2次执行sum()方法 return 99 + sum(98);
[sum()递归] 第3次执行sum()方法 return 98 + sum(97);
…
[sum()递归] 倒数第2次执行sum()方法 return 2 + sum(1);
[sum()递归] 倒数第1次执行sum()方法 return 1;.