今天是Java 学习的第五天,主要学习了方法!那莫神魔是方法呢?将一堆代码封装成一个具有独立功能的整体就是方法,它极大地提升了代码的复用性,简化了代码的逻辑,更符合java中面向对象的思想。
方法定义语法格式:
public static 数据类型 方法名(数据类型 参数名){
//方法体
//如果方法有返回值,则需要些return语句,后面跟具体的数据值;
}
方法的使用有两个明确:
1:明确方法的参数;就是方法体做事物的时候,需不需要别人传递一些数据进来;(原材料);
当看到: 根据xxx完成xxx功能;使用xxx完成xxx功能;一般需要设计参数;
例如:请自定义一个方法,打印出任意行数和列数的矩形"*";
再例如:请自定义一个方法,打印出99乘法表;(需求以及固定死了,无论谁使用这个方法,结果都是一样的,因此不需要设计参数)
2:明确方法的返回值;就是方法做完事情之后,需不需要给方法的调用者一个明确的反馈信息;(产出物);
当看到: 获取xxx,求xxx,计算xxx,找出xxx;一般需要设计返回值;
当看到: 输出xxx,打印xxx;一般不需要设计返回值;
例如: 自定义一个方法完成计算任意两个整数的和;(需要设计两个整数类型参数,一个整数类型返回值)
方法的使用有4个注意:
1:方法不能嵌套定义;
2:方法的定义不分先后,定义后,不调用不会执行;
3: 如果方法没有返回值类型,需要使用void关键字,同时方法体中可以省略return;
4:如果方法有返回值类型,方法体中必须写retrun 数据值;
在同一个类中,方法名相同,参数列表不同就是方法重载,好处是方便了方法的调用者。方法的使用要注意两点,1:方法重载与方法的返回值无关,仅仅与名称和参数列表有关;2:参数列表不同包括3种情况; (1):类型不同,(2):个数不同;(3):类型不同的情况下,顺序不同;
```java
public class ZuoYe {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
//判断水仙花数
System.out.println("请输入一个三位数:");
int num=scanner.nextInt();
isSXH(num);
//比较两个数的大小
System.out.println("请输入你想要比较大小的两个数字:");
double a=scanner.nextInt();
double b=scanner.nextInt();
System.out.println("请输入你想要保大还是保小?");
System.out.println("1:保大! 2:保小!");
int xuanze=scanner.nextInt();
if(xuanze==1){
System.out.println(ZuoYe3(a,b));
}else{
System.out.println(ZuoYe4(a,b));
}
}
//1.求两个整数之和
public static int ZuoYe(int a,int b) {
return a+b;
}
//2.求两个小数之和
public static double ZuoYe(double a,double b) {
return a+b;
}
//3.判断两个整数是否相等
public static boolean ZuoYe1(int a,int b) {
return a==b;
}
//4.判断两个小数是否相等
public static boolean ZuoYe1(double a,double b) {
return a==b;
}
//5.获取两个整数中较大的值
public static int ZuoYe3(int a,int b) {
return a>b?a:b;
}
//6.获取两个小数中较大的值
public static double ZuoYe3(double a,double b) {
return a>b?a:b;
}
//7.获取两个整数中较小的值
public static int ZuoYe4(int a,int b) {
return a<b?a:b;
}
//8.获取两个小数中较小的值
public static double ZuoYe4(double a,double b) {
return a<b?a:b;
}
//1.定义方法public static boolean isSXH(int num),
// 功能:判断数字num是否是水仙花数,如果是返回true,如果不是返回false。
//2.在main方法中调用该方法,传入数字,打印结果。(所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。)
// 打印:传入数字153,结果为true,该数字是水仙花数。
//153,370,371,407
public static void isSXH(int num){
int ge=num%10;
int shi=num/10%10;
int bai=num/10/10%10;
if(num==ge*ge*ge+shi*shi*shi+bai*bai*bai){
System.out.println("传入数字"+num+",结果为true,该数字是水仙花数。");
}else {
System.out.println("传入数字"+num+",结果为false,该数字不是水仙花数。");
}
}
}