方法是代码的一个集合,相当于把一些代码抽离出来,放在一起,并且给一个名字,下次再想执行这段代码时直接使用方法名进行调用
方法的格式//形参:在定义的时候不知道参数的值什么,只有调用这个方法传值后才知道这个参数的值是什么
//实参:
//无参无返回值
static void 方法名(){
}
//有参无返回值
static void 方法名(参数类型 参数名1, 参数类型 参数名2){
}
//无参有返回值
static 返回值类型 方法名(){
方法体;
return 数据;//数据类型和返回值类型一样
}
//有参有返回值
static 返回值类型 方法名(参数类型 参数名1, 参数类型 参数名2){
return 数据;
}
例子:
//计算两数之和
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入两个数");
int c = scanner.nextInt();
int d = scanner.nextInt();
TwoDataAdd(c,d);//调用方法
int m = TwoDataAdd(c,d);
System.out.println(m);
}
//计算两数之和
static int TwoDataAdd(int a, int b){
return a + b;
}
}
可变长参数
//不传参数也能调用这个方法,传一个参数也能调用,传n个参数也能调用,这叫可变长参数
static void add(参数类型 ... 参数名){//不具体
}
//注意:对于可变长参数只能出现在参数列表的最后一个位置
static void add(参数,参数类型 ... 参数名){
}
//先走匹配的,没有才走可变长
方法重载
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。同一个类里面,方法可以重载,重载的前提是在同一个类里面,方法名一样,参数列表的参数类型或者参数类型的顺序或者个数不一样,构成方法的重载
static void add (){
}
static void add(int i){
}
static void add(int i, byte k){
}
static void add (int ... j){
}
方法重写
子类能继承父类受保护和公共的属性和方法。子类继承父类,子类拥有了父类定义的受保护和公共的属性和方法
虽然子类拥有了这些方法,但是往往有时候子类在去执行父类继承的某些方法时,它执行的逻辑并不一定是父类定义的逻辑
如果不想子承父业,就需要去把父类的工作覆盖,这种形式就叫方法的重写/覆盖
重写:
必须有两个类,而且这两个类存在继承关系,子类能继承的方法
重写以后的方法,除了方法名和参数列表必须一样,方法体不一样或者访问修饰符不一样,但是子类重写了父类的方法那么在子类里面重写的这个方法的访问权限必须 >= 父类的访问权限。
demo:如果父类的方法的访问权限是protected,子类重写以后方法的访问修饰符只能是protected或者pubilc
父类的访问权限是public,子类重写以后方法的访问修饰符只能是public
//要注意,方法的递归可能会造成栈溢出错误
public static void main(String[] args){
a();
}
static void a(){
System.out.println("12345");
a();
}



