一,方法
1.概念:
特定功能的代码块
2.好处:
减少代码的冗余
3.分类:
1.无参数无返回值的方法
2.带参数的方法
3.带返回的方法
4.理解:
参数是方法调用时传入的数据,返回值是方法执行完毕后返回的数据
1.无参数无返回的方法
//语法结构:public static void 方法名(){
...代码块....
}
注意:public(访问修饰符)表示共有的意味着该方法在哪都可以调用
static 表示该方法为静态方法,静态方法直接使用类名调用
void 表示无返回值,该方法执行完毕后不会返回数据
方法写在类里,方法与方法之间是平级关系
方法必须被调用,不然永远是摆设,方法可以重复调用
public class Test01{
public static void main(String[] args){
Test01.run(); //在主方法中用类名调用方法
Test01.play();
Test01.run();
play(); //在同一个类中这种写法也可以去调用方法
run();
}
public static void run(){
System.out.println("跑的方法---");
}
public static void play(){
System.out.println("玩的方法");
}
}
2.带参数的方法
//语法结构
public static void 方法名(参数列表){
...代码块...
}
案例:设计一个方法getMax,传入两个int类型的数字,输出最大值
public class Test01{
public static void main(String[] args){
//调用方法
getMax(10,20); //10和20 是实参
}
public static void getMax(int a,int b){ //a和b就是形参
int max =(a>b)?a:b;
System.out.println("最大值为:"+max);
}
}
注意:形式参数-----形参:方法声明时设置的参数,参数必须设置类型,多个 参数用逗号隔开,
局部变量表示方法里的变量,其作用域只能在方法中使用;形参也是 局部变量
实际参数:--实参:调用方法是传入的具体参数;多个实参用逗号分 隔;实参与形参个数必须一致,类型必须兼容。
3.带返回值的方法
//语法结构:
public static 返回值类型 方法名([参数列表]){
...代码块...
return 具体数据;
}
案例:设计一个方法getMax,传入两个int类型的数字,返回最大值
public class Test01{
public static void main(String[] args){
int max = getMax(10,20);
System.out.println("最大值为:"+max);
}
public static int getMax(int a,int b){
int max=(a>b)?a:b;
return max; //1.将max返回给调用方 2.结束该方法
}
}
注意:方法声明时规定返回值类型;返回的具体数据必须和方法声明时返回 值类型兼容
方法功能的单一性(不要让一个方法的功能太强大,否则会导致其可维护性降低)
二,方法的重载
定义一个方法的步骤:1.考虑方法名 2.参数(几个参数,类型) 3.返回值(类型)
1.理解:
方法与方法之间的关系
2.条件:
方法必须在同一个类中;2.方法名必须一致 3.参数列表的个数或者类型 不一致;4.与返回值无关(重点!!!!)
3.好处:
系统会根据具体实参类型自动匹配到对应的方法中
案例:创建一个方法,传入两个int值,返回最大值;创建一个方法,传入三个int值,返回最大值;创建一个方法,传入两个double值,返回最大值;创建一个方法,传入三个double值,返回最大值
public class Test01{
public static void main(String[] args){
int max=getMax(10,20);
System.out.println(max);
//System.out.println(getMax(10,20)) 也可以直接打印,前提是该方法一定要有返回值
}
public static int getMax(int a,int b){
int max = (a>b)?a:b;
return max;
//return (a>b)?a:b; 也可以直接这样写
}
public static int getMax(int a,int b,int c){
int max=(a>b)?a:b;
max=(max>c)?max:c;
return max;
}
public static double getMax(double a,double b){
int max = (a>b)?a:b;
return max;
}
public static double getMax(double a,double b,double c){
int max=(a>b)?a:b;
max=(max>c)?max:c;
return max;
}
}
应用场景:一个类的多个方法的功能一致细节实现不一样,就可以考虑使用重载
三,方法的递归
前言:方法里声明的变量叫做局部变量,其作用域就在该方法的内部
概念:方法调用方法自身
经验:1.找规律 2.找出口
错误示范:
public static void main(String[] args){
method();
}
public static void method(){
method();
}//会显示 栈内存溢出 StackOverflowError
//错误出现的原因:调用方法就会在栈内存开辟空间,用于存放该方法的局部变量,死循环的调用方法,很快栈内存就被装满并溢出了
案例:设计一个方法,传入int类型的数字n,计算n的阶乘
public static void main(String[] args){
int num = getMath(5);
System.out.rontln(num);
}
public static int getMath(int n){
if(n==1){
return 1;
}else{
return getMath(n-1)*n;
}
}
注意:方法结束栈内存里的空间会立刻销毁
标签:Day08,Java,int,max,void,static,方法,public From: https://blog.csdn.net/2401_87491344/article/details/142623563