方法

回顾--方法的定义和调用

前面的课程中,使用过嵌套循环输出矩形,控制台打印出矩形就可以了,因此将方法定义为 void ,没有返回值。在主方法 main 中直接被调用。

public static void main(String[] args) {
	// 调用方法getSum,传递两个整数,这里传递的实际数据又称为实际参数
	// 并接收方法计算后的结果,返回值
	int sum = getSum(5, 6);
	System.out.println(sum);

}

/*
 * 定义计算两个整数和的方法 
 * 返回值类型,计算结果是int 
 * 参数:不确定数据求和,定义int参数.参数又称为形式参数
 */
public static int getSum(int a, int b) {
	return a + b;
}

程序执行,主方法 main 调用 getSum 方法,传递了实际数据 5和6 ,两个变量 a和b 接收到的就是实际参数,并将计算后的结果返回,主方法 main 中的变量 sum 接收的就是方法的返回值。

 

 

调用方法的流程图解

 

定义方法的注意事项

  • 定义位置,类中方法外面。
  • 返回值类型,必须要和 return 语句返回的类型相同,否则编译失败 。

 

// 返回值类型要求是int 
public static int getSum() {
  return 5;// 正确,int类型  
  return 1.2;// 错误,类型不匹配  
  return true;// 错误,类型不匹配
}

  

public static int getSum(int a,int b) {
     return a + b;
     System.out.println("Hello");// 错误,return已经结束,这里不会执行,无效代码
}

  

 

调用方法的三种形式

 直接调用:直接写方法名调用

public static void main(String[] args) {
	print();
}

public static void print() {
	System.out.println("方法被调用");
}

  

 赋值调用:调用方法,在方法前面定义变量,接收方法返回值

public static void main(String[] args) {
	int sum = getSum(5, 6);
	System.out.println(sum);
}

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

 

输出语句调用: 

 在输出语句中调用方法, System.out.println(方法名()) 。

public static void main(String[] args) {
	System.out.println(getSum(5, 6));
}

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

 

不能用输出语句调用 void 类型的方法。因为方法执行后没有结果,也就打印不出任何内容。  

 

public static void main(String[] args) {
	// 错误,输出语句不能调用void类型方法
	System.out.println(printHello());
}

public static void printHello() {
	System.out.println("Hello");
}

  

 

 

方法重载

方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。

  参数列表:个数不同,数据类型不同,顺序不同。
  重载方法调用:JVM通过方法的参数列表,调用不同的方法。

 

比较两个数据是否相等。参数类型分别为两个 byte 类型,两个 short 类型,两个 int 类型,两个 long 类型,并在 main 方法中进行测试。

public class MethodOperate {
	public static void main(String[] args) {
		// 定义不同数据类型的变量
		byte a = 10;
		byte b = 20;
		short c = 10;
		short d = 20;
		int e = 10;
		int f = 10;
		long g = 10;
		long h = 20;
		// 调用
		System.out.println(compare(a, b));
		System.out.println(compare(c, d));
		System.out.println(compare(e, f));
		compare(g, h);
	}

	// 两个byte类型的
	public static boolean compare(byte a, byte b) {
		System.out.println("byte");
		return a == b;
	}

	// 两个short类型的
	public static boolean compare(short a, short b) {
		System.out.println("short");
		return a == b;
	}

	// 两个int类型的
	public static boolean compare(int a, int b) {
		System.out.println("int");
		return a == b;
	}

	// 两个long类型的
	public static voidcompare(long a, long b) {
		System.out.println("long");
		if(a == b){
  System.out.println("true");
          } else {
System.out.println("false");
          } } }

 

 

posted @ 2019-01-04 22:21  竹子の云  阅读(159)  评论(0)    收藏  举报