构造方法:是一种特殊的方法,主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与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.构造方法:对象创建时,会调用且只调用一次;
一般方法:对象创建后,可以被调用多次;
注意:一般方法也可以和类名同名!(为了区分,构造方法首字母大写,而一般方法首字母小写。)
什么时候定义构造方法:
在描述事物时,该事物一存在就具备的一些内容,这些内容都定义在构造方法中。
昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否知否,应是绿肥红瘦!