1. 方法
方法就是对java代码功能的封装。
1.1 方法定义的格式
[访问修饰符] [关键字[static]] 返回值类型 方法名([参数列表]){}
for example:
public static int add(int a,int b){ retun a+b;}
1.2 方法的调用
在main方法中调用该方法,完整代码如下:
1 public static void main( String[] args ) 2 { 3 System.out.println("1+3="+add(1,3)); 4 } 5 6 public static int add(int a,int b){ 7 return a+b; 8 }
输出结果:
1+3=4
1.3 方法的分类
方法可以分成三种: 构造方法(构造函数,构造器),实例方法,类方法
构造方法定义的格式: [访问修饰符] 类名([参数列表]){}
实例方法定义的格式 [访问修饰符] 返回值类型 方法名([参数列表]){}
类方法定义的格式 [访问修饰符] static 返回值类型 方法名([参数列表]){}
从上面可以看出,三种方法的定义格式不同,那么同理他们的调用方式也有些许差异:
1class Person{ 2 public static void main(String[] arg){ 3 Person p=new Person(); 4 p.print();//用该类型的变量.方法名调用实例方法 5 Person.p();//直接用类名.静态方法名调用静态方法 6 } 7 public Person(){ 8 System.out.println("Person的构造方法"); 9 } 10 public void print(){ 11 System.out.println("Person 类的实例方法"); 12 } 13 public static void p(){ 14 System.out.println("Person 类的静态方法"); 15 } 16}
测试结果:
1Person的构造方法 2Person 类的实例方法 3Person 类的静态方法
2. 方法的重载
方法的重载发生在同一个类中,构成重载的元素有:
1. 方法名必须相同
2. 方法的参数类型列表不同(参数的个数,类型,顺序)
3. 访问修饰符,返回值类型 不影响重载
3. 方法的重写(覆盖)
首先方法的重写发生在父类类的继承关系之上
子类重写了父类的方法
1方法覆盖必须满足下列条件 2 3(1) 子类的方法的名称及参数必须和所覆盖的方法相同 4 5(2) 子类的方法返回类型必须和所覆盖的方法相同或者是覆盖方法返回值类型的子类 6 7(3) 子类方法不能缩小所覆盖方法的访问权限 8 9(4) 子类方法不能抛出比所覆盖方法更多的异常(子类抛出的异常要小于等于父类跑出的异常)