li

XXXXX

 

java面向对象编程---方法

二、方法

1、方法的重载

1.1 方法的签名

  • 方法的唯一标识就是方法的签名:方法的名字和参数列表;
  • 一个类中不能出现两个方法的签名完全一样的方法

1.2 方法的重载

  • 方法名相同但参数列表不同称之为方法的重载。
public void show(){} 
//互相构成重载 
public void show(int i) {}

1.3 访问重载方法

  • 编译器在编译时会根据方法的起那么绑定调用不同的方法

 

 2、构造方法

2.1 构造方法的语法结构

  • 构造方法是类的成员之一----------特殊的方法,有如下两个规则:
  • 方法名和类名相同;
  • 没有返回值类型,且不写void
public class Person{
    public Person(){
        //构造方法
    }
}

2.2 通过构造方法初始化成员变量

  • 构造方法的意义:初始化成员变量
  • 当实例化一个对象时:new Person():实际上是执行了对应的构造方法
public class Person() { 
    Public Person() { 
        System.out.println("执行了无参构造方法"); 
    } 
}
public class Test{ 
    public void static main(String[] args){ 
        Person p = new Person();//执行了无参构造方法 
    } 
}

2.3 this关键字

  • this关键字解决了构造方法参数名称的属性名称同名的问题;
public Person(String name,int age) { 
    this.age = age; 
    this.name = name;//this解决同名问题。增加代码可读性 
}
  • this关键字是谁?谁调用了this.属性或方法中的某个属性和方法,则this就调用谁
public Person(String name) { 
    System.out.println("Person的无参构造方法"); 
    this.name = name;//this.指Person对象。 
}

2.4 默认的构造方法

  • 一个类必须有构造方法,当类中没有定义时,编译器会提供一个默认的无参构造方法;
  • 当我们显式的定义了任意一个构造方法时,系统将不会提供默认的无参构造方法。
public class Person { 
    String name; 
    int age; 
    public Person(String name) {//类名相同 且无返回值类型--- 构造方法 
        System.out.println("Person的无参构造方法"); 
        this.name = name;//区分同名的 
    }
    public void show () { 
        System.out.println("show1"); 
    }
    public void show (int i) { 
        System.out.println("show2"); 
    }
    public void show (double d) { 
        System.out.println("show3"); 
    }
    public void show (int i ,double d) { 
        System.out.println("show4"); 
    }
    public void Show (int i ,double d) { 
        System.out.println("show5"); 
    } 
}
public class TestMethod { 
    public static void main(String[] args) { 
        Person p = new Person();//会报错,系统不会提供默认的构造方法 
    }
}

2.5 构造方法的重载

  • 类名相同,但参数列表不同的构造方法,我们称之为互相构成重载。
public Person(String name,int age) { 
    this.name = name;
    this.age = age; 
}
public Person(String name) {//类名相同 且无返回值类型--- 构造方法 
    System.out.println("Person的无参构造方法"); 
    this.name = name;//区分同名的 
}

 

 

posted on 2022-03-18 09:26  LXXXXxZz  阅读(37)  评论(0编辑  收藏  举报

导航