00047_构造方法

1、构造方法介绍

  对象创建时要执行的方法。

2、构造方法的格式

修饰符 构造方法名(参数列表){}

3、构造方法的体现

  (1)构造方法没有返回值类型。也不需要写返回值。因为它是为构建对象的,对象创建完,方法就执行结束;

  (2)构造方法名称必须和类型保持一致;

  (3)构造方法没有具体的返回值。

 1 class Person {
 2     // Person的成员属性age和name
 3     private int age;
 4     private String name;
 5 
 6     // Person的构造方法,拥有参数列表
 7     Person(int a, String nm) {
 8         // 接受到创建对象时传递进来的值,将值赋给成员属性
 9         age = a;
10         name = nm;
11     }
12 }

4、默认构造方法和细节

  (1)通过new关键字创建对象,并调用相应的方法,同时在描述事物时也没有写构造方法。当在编译Java文件时,编译器会自动给class文件中添加默认的构造方法;

  (2)如果在描述类时,我们显示指定了构造方法,那么,当在编译Java源文件时,编译器就不会再给class文件中添加默认构造方法; 

class  Person {
    //如果没有显示指定构造方法,编译会在编译时自动添加默认的构造方法
    //Person(){}  //空参数的默认构造方法
}

  (3)当描述的事物在创建其对象时就要明确属性的值,这时就需要在定义类的时候书写带参数的构造方法。若创建对象时不需要明确具体的数据,这时可以不用书写构造方法(不书写也有默认的构造方法);

  (4)一个类中可以有多个构造方法,多个构造方法是以重载的形式存在的;

  (5)构造方法是可以被private修饰的,作用:其他程序无法创建该类的对象;

 1 class Person {
 2     private int age;
 3     private String name;
 4 
 5     // 私有无参数的构造方法,即外界不能通过new Person();语句创建本类对象
 6     private Person() {
 7     }
 8 
 9     // 多个构造方法是以重载的形式存在
10     Person(int a) {
11         age = a;
12     }
13 
14     Person(String nm, int a) {
15         name = nm;
16         age = a;
17     }
18 }

5、构造方法和一般方法区别

  (1)构造方法在对象创建时就执行了,而且只执行一次;
  (2)一般方法是在对象创建后,需要使用时才被对象调用,并可以被多次调用;

  (3)有了构造方法之后可以对对象的属性进行初始化,那么还需要对应的set和get方法吗?
  需要相应的set和get方法,因为对象在创建之后需要修改和访问相应的属性值时,在这时只能通过set或者get方法来操作。

posted @ 2017-12-21 19:22  gzdlh  阅读(113)  评论(0)    收藏  举报