构造方法和成员方法
构造方法:是一种特殊的方法,主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。
特别的一个类可以有多个构造方法 ,可根据其参数个数的不同或参数类型的不同来区分它们,即构造方法的重载。
主要特点:
1.名字相同:构造方法的命名必须和类名完全相同。(在java中普通方法可以和构造方法同名,但是必须带有返回值)
2.无任何返回值:构造方法没有返回值,也不能用void来修饰。
3.使用new来调用:构造方法不能被直接调用,必须通过new运算符在创建对象时才会自动调用。(而一般的方法是在程序执行到它的时候被调用的)
4.无显式构造方法时,系统默认无参构造方法:Java编译器会提供一个默认的构造方法.此默认构造方法是不带参数的。(建议手动给出无参构造方法)
注:给成员变量赋值有两种方法:
1.使用set方法(此方法更常用); 2.使用带参构造方法;
赋值方法虽然不同,但调用方法都是相同的,都是使用getXxx。
1 class Student{//学生类 2 private String name;//成员变量 3 private int age;//成员变量 4 public Student(){//无参构造方法 5 } 6 public Student(String name,int age){//带参构造方法 7 this.name = name; 8 this.age = age; 9 } 10 public String getName(){//成员属性 11 return name; 12 } 13 public void setName(String name){//成员属性 14 this.name = name; 15 } 16 public int getAge(){//成员属性 17 return age; 18 } 19 public void setAge(int age){//成员属性 20 this.age = age; 21 } 22 } 23 class ExtendsTest{ 24 public static void main(String[] args){ 25 Student s1 = new Student();//使用set方法 26 s1.setName("benon"); 27 s1.setAge(18); 28 System.out.println(s1.getName()+"---"+s1.getAge()); 29 30 Student s2 = new Student("yanyan",16);//使用带参构造方法 31 System.out.println(s2.getName()+"---"+s2.getAge()); 32 } 33 }
与一般方法的区别:
1.构造方法:对象创建时,就会调用与之对应的构造方法,对对象进行初始化;
一般方法:对象创建后,需要方法功能时才会调用;
2.构造方法:对象创建时,会调用且只调用一次;
一般方法:对象创建后,可以被调用多次;
注意:一般方法也可以和类名同名!(为了区分,构造方法首字母大写,而一般方法首字母小写。)
什么时候定义构造方法:
在描述事物时,该事物一存在就具备的一些内容,这些内容都定义在构造方法中。
昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否知否,应是绿肥红瘦!