天天看点

Java 面向对象 之 构造方法

http://www.verejava.com/?id=16992731753535
/**
    测试构造方法
*/
public class Constructor {
    
    public static void main(String[] args) {
        //实例化Person
        Person p = new Person();

        //用带参数的构造方法实例化Person
        Person p2 = new Person("李明", 22);
        p2.say();

        //匿名对象
        new Person("王强", 23).say();
    }
}

/**
    构造方法
    什么是构造方法: 方法名和类名相同, 无返回值, 连void 都没有

    构造方法的特性:
    1. 当实例化对象是构造方法会自动调用。
    2. 当类中没有定义不带参数的构造方法时,java虚拟机会自动为之创建一个不带参数的构造方法来实例化
    3. 当类中定义了带参数的构造方法, 而实例化的时候却用不带参数的构造方法时. java
        虚拟机不会自动生成不带参数的构造方法,必须手动加上

    构造方法的作用: 初始化参数

    构造方法的重载: 在同一个类中,方法名相同,参数的个数或类型不同
*/
class Person {
    
    private String name;
    private int age;

    //定义不带参数构造方法
    public Person() {
        System.out.println("Person 被实例化");
    }

    //定义带参数的构造方法
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void say() {
        System.out.println("我的名字叫 :" + name + ",今年:" + age + " 岁");
    }

}