在我们初学JAVA时,已经不可避免的使用到了构造方法(Constructor)--因为实例化一个对象实际上就是去调用这个对象的构造方法。
那么究竟什么是构造方法?我们为什么需要构造方法?
下面我们来看以下代码,以下是Student类
- public class Student
- {
- private int age;
- public void setAge(int age)
- {
- this.age = age;
- }
- public int getAge()
- {
- return this.age;
- }
- private String name;
- public void setName(String name)
- {
- this.name = name;
- }
- public String getName()
- {
- return this.name;
- }
- private String hobby;
- public void setHobby(String hobby)
- {
- this.hobby = hobby;
- }
- public String getHobby()
- {
- return this.hobby;
- }
- public void say()
- {
- System.out.println("大家好,我是" + this.name + ",今年" + this.age + "岁,我喜欢" + this.hobby);
- }
- }
我们来编写测试类,实例化几个Student类对象
- public class TestStudent
- {
- pubic static void main(String args [])
- {
- //实例化对象
- Student hamber= new Student();
- student.Name = "hamber";
- student.age = 20;
- student.hobby = "学习";
- //实例化对象
- student rose = new Student();
- rose.name = "rose";
- rose.age = 20;
- rose.hobby ;
- //调用对象的say()方法
- hamber.say();
- rose.say();
- }
- }
当我们运行以上程序时,我们会发现Student对象rose忘了对其属性hobby赋值,真是个麻烦
像以上声明方法,我们需要对每个对象的属性一一赋值,有没有简便的方法呢
这就需要用到了我们的构造方法
构造方法的作用就是为了初始化对象,简便初始化过程的。
构造方法需要满足以下规则:
1.方法名必须与类名一致
2.没有返回类型
3.在构造方法中,不允许出现return语句
示例:
- public Student
- {
- //无参构造方法
- public Student(){}
- ```````````````
- }
构造方法有分为有参构造方法和无参构造方法
有参构造方法就是带有参数的构造方法,在很多时候,我们需要显式的为类中的属性进行赋值,这就需要用到了有参构造方法。
示例:
- public Student
- {
- `````````````````````
- //有参构造方法
- public Student(String name,int age,String hobby)
- {
- this.Name = name;
- this.Age = age;
- this.Hobby = hobby;
- }
- `````
- }
注意:
在JAVA程序中,若某个类中没有显式声明构造函数(无论是有参还是无参),系统都将隐式生成一个无参的构造方法。
如果,在类中显式声明了一个构造方法(无论是有参还是无参),则系统隐式生成的无参构造方法就没有了··