方法简介
方法是用来封装特定功能的代码块,为了提高代码的复用性。
方法的通用格式
修饰符 返回值类型 方法名(参数列表){
方法体;
return 返回值;
}
格式解析:
修饰符:权限修饰符+静态修饰符,需要视情况决定加不加,加哪种修饰符
返回值类型:结果的数据类型,如果没有返回值就写void
方法名:根据功能自己取的名字(见名知意)
参数列表:完成功能需要的数据
方法体:具体的功能代码
return : 结束方法,并带回返回值;
学习方法主要就学习两点
1.方法的定义 //权限修饰符 static(static看情况是否要加) 返回值类型 方法名 (参数列表) {方法体}
main方法:public static void main(String[] args)
固定格式,只有 args 可以更改
构造方法:public Student() {}
与类同名且不加返回值类型的方法,可以有参数列表,方法体,但不能写返回值类型, 也有说法认为其返回值类型与类名相同。类中必有构造方法,无论写不写。
接口由于不能被实例化,故没有构造方法。
抽象方法里是有构造方法的,但其同样无法被实例化,其构造方法是默认的无参构造, 也可以显式的表现出来
成员方法:权限修饰符 static(可以不加) 返回值类型 方法名 (参数列表) {方法体}
抽象方法:必须在抽象类/接口中,以 abstract 修饰,不能用 private 修饰,其子类/ 实现接口必须重写抽象方法,可以有返回值,无方法体
静态方法:以 static 修饰的皆为静态方法,在同一个类中,静态方法只能调用静态方法,静态 变量,测试类中,静态方法可以通过对象调用其他类中的非静态方法,实际相当于在其他类 中调用方法
2.方法的调用 // 同一个类中,通过 方法名(实际参数) 调用
// 不同类中,需要先创建对象,而后通过 对象名.方法名(实际参数) 调用
// 静态方法可以直接用 类名.对象名(实际参数) 调用
不管类中有多少方法,当类中有main方法时,第一个执行的永远是main方法,且一个类中最多有一个main方法(可以重载以 main 命名的方法,但其不再是 main 方法)
形式参数和实际参数
形式参数:定义方法时,小括号中的参数
实际参数:调用方法时,小括号中的参数
注意:形式参数和实际参数是一一对应的
参数类型和个数都要对应
方法的返回值
如果方法的执行结果需要交给调用者处理,就需要些返回值
public static 结果的数据类型 方法名(){
....
return 结果;
}
其中 return 结果的数据类型要在创建方法时确定好,若不需要返回值必须在创建方法时加上 void ,构造方法除外
方法重载
方法重载指的是,在同一个类中,方法名相同,参数列表不同(可以是类型,个数,顺序等的不同),与返回值无关
方法重写
方法重写指的是两个方法的返回值,方法名,参数列表相同( 子类(实现接口)重写父类(接口)的方法 ),但不能在同一个类中
方法参数类型的问题
1.方法的参数是基本数据类型
形式参数的改变对实际参数没有影响
2.方法的参数是引用数据类型
实际参数传递的就是地址
构造方法
1.构造方法的格式
//构造方法的名称和类名相同,可以有多个
public 类名(参数列表){
方法体;
}
2.构造方法是干什么用的?
答:构造方法是用来创建对象的,每次new 对象构造方法都会执行。根据参数列表的不同会调用不同的构造方法
Student s=new Student(); //这就是在执行构造方法
3.构造方法的注意事项
1.没有写构造方法,系统会自动补充一个空参数构造方法
2.如果写了构造方法,系统不再补充空参数构造方法
4.构造方法中写什么代码?
一般在构造方法中做一些初始化的操作,如果在创建对象时给成员变量赋值。但做其他操作也没问题