您的位置 首页 java

java学习系列(六)方法

1.1.1. 方法的定义

函数就是定义在类中的具有特定功能的一段独立小程序,函数也称为方法。 函数的格式: 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…) {

执行语句;

return 返回值;

}

返回值类型:函数运行后的结果的数据类型。

参数类型:是形式参数的数据类型。 形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。 实际参数:传递给形式参数的具体数值。 return:用于结束函数。 返回值:该函数运算后的结果,该结果会返回给调用者。

示例:

FunctionDemo.java

 class FunctionDemo {
	public static void main(String[] args) {
		int c = add(3, 4);
		System.out.println("c = " + c);
	}

	public static int add(int a, int b) {
		return a + b;
	}
}  

1.1.1. 函数的特点

1、定义函数可以将功能代码进行封装。 2、便于对该功能进行复用。 3、函数只有被调用才会被执行。 4、函数的出现提高了代码的复用性。

注意:

1、对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写,或者写上return;

示例:

 class FunctionDemo {
	public static void main(String[] args) {
		myPrint();
		myPrint();
	}

	public static void myPrint() {
		System.out.println("hello world");
		return;
	}
}  

2、函数中只能调用函数,不可以在函数内部定义函数。否则,编译时期就会报错。

 class FunctionDemo {
	public static void main(String[] args){
             public static void myPrint() {
                  System.out.println( "hello world");
                   return;
            }
      }

}  

3、定义函数时,函数的结果应该返回给调用者,交由调用者处理。

提问:

如果需要写一个两数相加的例子,那么使用下面的代码一好呢?还是代码二好呢?

代码一:

public static int add(int a,int b){ return a + b; }

代码二:

public static void add(int a,int b){ System.out.println(a + b); }

答案: 虽说两种都可以执行出正确的数据, 代码一比较好 ,因为调用者只需要获取两数相加的结果,而不需要你做打印的操作!

1.1.1. 函数的应用

两个明确: 明确要定义的功能最后的结果是什么? 明确在定义该功能的过程中,是否需要未知内容参与运算。

问题1:

需求:定义一个功能,完成两个整数的和的获取。 思路:既然定义功能,就可以用函数来体现。 通过两个明确来完成: 明确一:这个功能的结果是什么?是和。是功能的结果,所以该功能的返回值类型是int。其实就是在明确函数的返回值类型。 明确二:这个功能实现过程中是否需要未知内容参与运算?有,加数和被加数。这就是函数的参数列表(参数的个数,参数的类型)。其实就是在明确参数列表。 注意:

返回值类型和参数类型没有直接关系。

代码: public static int add(int a,int b){

return a + b; }

问题2:

需求:定义一个功能,画一个矩形在控制台。

思路:既然定义功能,就可以用函数来体现。 明确一:这个功能结果是什么?没有结果,因为直接打印到了控制台,并未返回给调用者。用void表示。 明确二:这个功能实现过程中是否需要未知内容参与运算?有,行和列不确定,两个,整数int类型。

 public static void draw(int row, int col) {
	for (int x = 1; x <= row; x++) {
		for (int y = 1; y <= col; y++) {
			System.out.print("*");
		}
		System.out.println();
	}
	return;// 可以省略不写
}

  

问题3:

需求:两个数是否相等。 明确一:这个功能的结果是什么?有,boolean类型。 明确二:这个功能实现过程中是否需要未知内容参与运算?有,两个整数。

 public static boolean equals(int a,int b){
	return a == b;
}  

问题4:

需求:定义一个功能,获取两个整数中较大的那个数。 明确一:这个功能的结果是什么?有,是int类型。 明确二:这个功能实现过程中是否需要未知内容参与运算?有,参与比较的两个整数,int类型。

代码:

public static int getMax(int a,int b){ return a > b?a:b; }

问题5:

定义功能,打印99乘法表。

代码:

 public static void print99() {
 for (int x = 1; x <= 9; x++) {
  for (int y = 1; y <= x; y++) {
   System.out.println(y + "*" + x + "=" + y * x + "\t");
  }
 }
}  

问题6:

根据考试成绩获取学生分数对应的等级。

90~100 A 80~89 B 70~79 C 60~69 D 60以下 E

 public static char getLevel(int num) {
	char level;
	if (num >= 90 && num <= 100)
		level = 'A';
	else if (num >= 80 && num <= 89)
		level = 'B';
	else if (num >= 70 && num <= 79)
		level = 'C';
	else if (num >= 60 && num <= 69)
		level = 'D';
	else
		level = 'E';
	return level;
}  

1.1.1. 函数的重载(overload)

重载的概念:

在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。

重载的好处:

方便于阅读,优化了程序设计。

 示例:
FunctionDemo.java
class FunctionDemo {
	public static void main(String[] args) {
		add(3, 4);
		add(3.0, 4.0);
		add(3, 4, 5);
	}

	// 加法运算,两个整数的和
	public static int add(int a, int b) {
		return a + b;
	}

	// 加法运算,两个小树的和
	public static double add(double a, double b) {
		return a + b;
	}

	// 加法运算,三个整数的和
	public static int add(int a, int b, int c) {
		return add(a, b) + c;
	}
}  

总结:

函数的功能一样,仅仅是参与运算的未知内容不同时,可以定义多函数,却使用统一函数名称,这样方便阅读。 在调用时,虚拟机通过参数列表的不同来区分同名函数。

注意:

重载与返回值类型无关,只看参数列表。

java是严谨性语言,如果函数调用出现不确定性,会编译失败。

文章来源:智云一二三科技

文章标题:java学习系列(六)方法

文章地址:https://www.zhihuclub.com/174192.shtml

关于作者: 智云科技

热门文章

网站地图