Java面向对象2----构造方法和匿名对象

本文介绍了Java中构造方法的定义,强调了构造方法在类实例化时的作用,并指出自定义构造方法后将不再自动生成无参构造。此外,还详细讲解了匿名对象的概念,包括其使用方式和特点,指出匿名对象简化代码但仅能使用一次。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

构造方法的定义:

  • 类中必须至少有一个构造方法,默认无参构造
  • 名称与类名称保持一致
  • 不设置任何的返回值类型
  • 构造方法是是实例化new一个对象的时候自动调用的
    如果自己定义了构造方法,则不会自动生成无参构造方法,构造方法的定义可以根据自己的需求定义多个,类似于方法的重载。

构造方法的使用示例

class Person {
    private String name; // 人的属性名字
    private int age; // 人的属性年龄

    // 定义构造方法,方法名与类名一致,且无返回值
    public Person(String n, int a) {
        name = n;
        age = a;
    }

    // 定义一个参数的构造方法
    public Person(String n ) {
        name = n;
    }

    public void showInfo() {
        System.out.println("name: " + name + "\nage: " + age);
    }
}

public class Demo {
    public static void main(String[] args) {
        Person person1 = new Person("demo", 12); // 实例化对象
        person1.showInfo();

        Person person2 = new Person("demo2");
        person2.showInfo();
    }
}

在这里插入图片描述
此时我们自己定义了构造方法,则不会自动生成无参构造,如果实例化使用无参构造,就会报错。如果想要我们的类拥有无参构造,就需要自己再次定义。

public class Demo {
    public static void main(String[] args) {
        Person per = new Person();
        per.showInfo();
    }
}

error

匿名对象的使用

来观察我们的对象定义过程
类名 对象名 = new 类名();
前面部分告诉我们声明的对象是哪个类的实例化,以及对象的名称,方便后续的使用。
等号后面的部分用于对象的实例化,这部分包含对象的所有数据,实例化后会将该部分内容的地址给对象名,然后通过对象名来v操作该部分数据。
而匿名对象只有等号的后半部分。匿名对象只能使用一次,因为没有指向该地址的变量名,使用后该匿名对象会被Java回收机制GC回收。
示例:匿名对象的使用

public class Demo {
    public static void main(String[] args) {
        new Person("匿名对象", 66).showInfo();
    }
}

在这里插入图片描述
匿名对象只会简化部分的代码,具体使用与否看个人习惯。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值