Java面向对象--构造函数

一:构造函数定义

  • 一种特殊的方法,创建对象时用来初始化对象,每次使用new 创建对象的时候,就会使用构造函数
  • 与类具有相同的名称,但是没有返回值,Java会自动为每个类提供一个默认构造函数
  • 如果自己定义了构造函数,就不再使用默认构造函数,如果没有显示的写出默认构造函数,则会消失
  • 注意点:如果构造函数之间互相调用,务必写在方法第一行
1.1 无参构造函数(默认构造函数)

代码示例:在chapter6的包下,创建Cat类

package chapter6;

public class Cat {
    //构造函数
    public Cat(){
        System.out.println("Cat 无参构造函数");
    }

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

在chapter6下,创建TestMain运行类

package chapter6;

public class TestMain {

    public static void main(String[] args) {
    	//cat只要实例化一个对象,构造函数就会被调用
        Cat cat = new Cat();
    }
}

//运行结果:Cat 无参构造函数
1.2 有参构造函数

cat.java文件

  • 如果存在有参构造函数,就要把无参构造函数显示的写出来
package chapter6;

public class Cat {
    //无参构造函数
    //如果存在有参构造函数,就要把无参构造函数显示的写出来
    public Cat(){
        System.out.println("Cat 无参构造函数");
    }


    //有参构造函数构造函数
    public Cat(int age){
        this.age = age;
        System.out.println("Cat 有参构造函数,age为:" + age);
    }

    public Cat(int age,String name){
        this.age = age;
        this.name = name;
        System.out.println("Cat 有参构造函数,age为:" + age + "name为:" + name);
    }

    private int age;


    private String name;


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

TestMain.java文件

package chapter6;

public class TestMain {

    public static void main(String[] args) {
        Cat cat1 = new Cat(1);

        Cat cat2 = new Cat(2,"张三");

        Cat cat3 = new Cat();
    }
}

//运行结果:
//Cat 有参构造函数,age为:1
//Cat 有参构造函数,age为:2name为:张三
//Cat 无参构造函数
1.3 构造函数的修饰符
  • public 用的最多,用来创建对象
  • private 私有化构造函数,不给外部创建对象,比如工具类,或者单例设计模式
  • default 默认,只能在当前包里面使用new 创建对象,几乎不用
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值