构造函数

来源:互联网 发布:精液优化处理什么意思 编辑:程序博客网 时间:2024/06/03 14:15

构造方法主要用来创建类的实例化对象,可以完成创建实例化对象的初始化工作,声明格式:

    构造方法修饰词列表 类名(方法参数列表){    {

构造方法修饰词列表:public、proteced、private
类的构造方法和普通方法一样可以进行重载
构造方法具有以下特点
- 构造方法的名称必须与类名相同
- 构造方法不具有任何返回值类型,即没有返回值类型,也不能加入关键字void,加入后就不是构造方法了,而是普通的方法
- 任何类都有构造方法,如果没有写,系统会默认为该类定义一个无参数的构造方法,但如果用户定义了构造方法,系统就就不会创建不带参数的构造方法了。

    public class Student {    //学号    private int id;     //姓名    private String name;    //性别    private boolean sex;    //地址    private String address;    //年龄    private int age;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public boolean isSex() {        return sex;    }    public void setSex(boolean sex) {        this.sex = sex;    }    public String getAddress() {        return address;    }    public void setAddress(String address) {        this.address = address;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    //默认构造方法(没有Void)        public Student() {            //在创建对象的时候会执行该构造方法            //在创建对象的时候,如果需要做些事情,可以放在构造方法中            System.out.println("----------Student-------------");        }}
public class ConstructorTest01  {    public static void main(String[] args) {        // TODO Auto-generated method stub        //创建一个对象        Student zhangsan = new Student();        zhangsan.setId(1001);        zhangsan.setName("张三");        zhangsan.setSex(true);        zhangsan.setAddress("北京");        zhangsan.setAge(20);        System.out.println("id=" + zhangsan.getId());               System.out.println("name=" + zhangsan.getName());        System.out.println("sex=" + zhangsan.isSex());        System.out.println("address=" + zhangsan.getAddress());        System.out.println("age=" + zhangsan.getAge());     }}


红色箭头指向构造方法Student()执行时输出的话,由此可知在创建对象的时候会执行该构造方法,在创建对象的时候,如果需要做些事情(或一些必要的说明),可以放在构造方法中
当把Student类中的构造方法修改为

public Student(int studentId, String studentName, boolean studentSex, String studentAddress, int studentAge) {        id = studentId;        name = studentName;        sex = studentSex;        address = studentAddress;        age = studentAge;    }


这样的错误说明创建的有参数的构造方法会覆盖无参数构造方法,所以在创建对象是需要我们输入有参数方法的对应参数

原创粉丝点击