java基础——day03-2 方法
方法
回顾--方法的定义和调用
package day03; public class day03_21 { //利用方法,打印矩形 public static void main(String[] args) { //方法的调用 print(); } //定义私有静态方法 private static void print(){ for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { System.out.print("* "); } System.out.println(); } } }
print 方法被 main 方法调用后直接输出结果,而 main 方法并不需要 print 方法的执行结果,所以被定义为void 。
定义方法的格式解析

修饰符:public static固定写法
返回类型:表示方法运行结果的数据类型,方法执行后将结果返回到调用者,如果无返回结果,返回类型写void。
参数列表:方法在运算过程中的未知数据,调用者调用方法时传递。
return:将方法执行后的结果返还给调用者,方法执行到return,整体方法运行结束。
定义方法的两个明确:
需求:定义方法实现两个整数的求和计算
明确返回类型:方法计算的是整数的求和,所以返回结果必然是整数。
明确参数列表:方法计算的是两个整数的和,所以我们需要定义两个形参来接收。
package day03; public class day03_22 { //利用方法计算两个整数的和 public static void main(String[] args) { //定义两个整数 int a = 10; int b = 20; //调用方法Sum 并打印计算结果 System.out.println(Sum(a,b)); } //定义方法 其中num1 num2为形参 主要用于接受传递的数据 public static int Sum(int num1,int num2){ //定义result用于接收两个整数的和 int result; result = num1 +num2; //返回计算结果 return result; } }
调用方法的大致过程:

定义方法的练习
1、比较两整数是否相同
package day03; public class day03_23 { //比较两整数是否相同 public static void main(String[] args) { //定义两个整数 int a = 10; int b = 10; int c= 20; //输出调用方法的结果 System.out.println(compare(a,b)); //对比 System.out.println(compare(a,c)); } //定义方法 因为是对比数据 所以返回布尔类型 public static boolean compare(int num1 ,int num2){ if(num1 == num2){ return true; }else { return false; } } }
2、计算1-指定数的的累加和
package day03; import java.util.Scanner; public class day03_24 { //利用方法计算 1-指定数的 的累加和 public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入需要从1累加的数:"); int num = sc.nextInt(); //判断用户输入 if(num <=0){ System.out.println("您的输入有误"); }else { System.out.println(sum(num)); } } //定义求累加的方法 public static int sum(int num){ //定义result用于接受计算结果 int result = 0; //计算体 for (int i = 1; i <= num; i++) { result += i; } return result; } }
定义方法的注意事项
1.定义位置,定义在类中main方法外
2.返回值类型,必须要和return语句返回类型相同,否则编译失败

3.不能在return 结果;后面写代码,return意味方法结束,后面的代码不会被执行。

调用方法的三种形式
直接调用:直接写方法名调用
package day03; public class day03_25 { //方法直接调用 public static void main(String[] args) { print(); } public static void print(){ System.out.println("该方法被调用了"); } }
赋值调用:调用方法,在方法前面定义变量,接收方法返回值
package day03; public class day03_25 { //方法赋值调用 public static void main(String[] args) { int a = 10; int b = 20; //定义result 用于接收计算结果 int result = sum(a,b); System.out.println(result); } public static int sum(int a,int b){ return a+b; } }
输出语句调用:在输出语句中调用方法
package day03; public class day03_25 { //方法输出语句调用 public static void main(String[] args) { int a = 10; int b = 20; //直接输出计算结果 System.out.println(sum(a,b)); } public static int sum(int a,int b){ return a+b; } }
注意:不能在输出语句调用void类型的方法,因为方法执行后没有结果,也就不会打印任何内容。
方法重载
方法重载
定义:指在同一个类中,允许存在一个以上的同名方法,只要参数列表不同即可,与修饰符和返回类型无关。
参数列表:个数不同,数据类型不同,顺序不同。
重载方法调用:JVM通过方法参数,调用不同的方法
方法重载练习
1.比较两个数据是否相等,参数类型分别为两个 byte 类型,两个 short 类型,两个 int 类型,两个 long 类型,并在 main 方法中进行测试。
package day03; public class day03_26 { public static void main(String[] args) { //定义不同类型数据变量 byte a = 10,b = 20; short c=10,d = 20; int e = 10,f = 10; long g = 10,h =20; //调用方法 System.out.println(compare(a,b)); System.out.println(compare(c,d)); System.out.println(compare(e,f)); System.out.println(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 boolean compare(long a ,long b){ System.out.println("long"); return a ==b; } }
2.判断哪些方法是重载

答案:1、2、4、5、8
3、模拟输出语句中的 println 方法效果,传递什么类型的数据就输出什么类型的数据,只允许定义一个方法名print 。
package day03; public class day03_27 { public static void main(String[] args) { } public static void print(byte a){ System.out.println(a); } public static void print(short a){ System.out.println(a); } public static void print(char a){ System.out.println(a); } public static void print(int a){ System.out.println(a); } public static void print(float a){ System.out.println(a); } public static void print(double a){ System.out.println(a); } public static void print(boolean a){ System.out.println(a); } public static void print(String a){ System.out.println(a); } }

浙公网安备 33010602011771号