java学习之第十章作业

这篇博客详细介绍了Java学习中关于类变量的共享特性,以及在实际编程中遇到的问题,如匿名内部类的使用和代码优化。讨论了在创建对象时避免资源浪费的方法,并探讨了成员内部类的访问方式以及枚举类的正确使用思路,通过具体代码示例进行了解析。

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

目录

第一题

第二题

第三题

第四题

第五题

第六题

 代码的问题点

第七题

第八题


第一题

package homework;

public class HomeWork01 {
    public static void main(String[] args) {
        Car c = new Car();//创建新对象,没有实参
        Car c1 = new Car(100);
        //1.创建一个新的对象实例,调用无参构造器
        //2.在无参构造器中price从10.0变成9.0
        //3.color从white变成red
        System.out.println(c);//9.0,red

        //1.创建一个新对象实例c1,调用public Car(double price)这个有参构造器
        //2.c1的price = 10;调用构造器,传参之后变成了100.0
        //3.color是static属性,是所有Car类的对象共享的,
        // Car c = new Car();之后已经变成了red,所以对象c1的color属性也是red

        System.out.println(c1);//100.0 ,red
    }
}

class Car {
    double price = 10;
    static String color = "white";//静态属性,所有对象共享

    public String toString() {//重写toString方法
        return price + "\t" + color;
    }

    public Car() {//无参构造器
        this.price = 9;
        this.color = "red";
    }

    public Car(double price) {//有参构造器
        this.price = price;
    }
}

 考察知识点:类变量是类中所有对象共享的

第二题

package homework;

public class HomeWork02 {

}

class Frock {
    private static int currentNum = 100000;

    public int serialNumber;

    public static int getNextNum() {
        currentNum += 100;
        return currentNum;
    }

    public int getSerialNumber() {
        return serialNumber;
    }

    public Frock() {
        this.serialNumber = getNextNum();
    }
}

class TestFrock {
    public static void main(String[] args) {
        System.out.println(Frock.getNextNum());
        System.out.println(Frock.getNextNum());
        Frock frock1 = new Frock();
        Frock frock2 = new Frock();
        Frock frock3 = new Frock();
        System.out.println(frock1.serialNumber);
        System.out.println(frock2.serialNumber);
        System.out.println(frock3.serialNumber);

    }
}

第三题

package homework;

public class HomeWork03 {
    public static void main(String[] args) {
        Animal cat = new Cat();//父类引用指向子类对象
        cat.shout();
        Animal dog = new Dog();
        dog.shout();
    }
}

abstract class Animal {
    public abstract void shout();
}

class Cat extends Animal {
    @Override
    public void shout() {
        System.out.println("猫会喵喵叫...");
    }
}

class Dog extends Animal {
    @Override
    public void shout() {
        System.out.println("狗会汪汪叫...");
    }
}

第四题

 考察:匿名内部类

我的代码

package homework;

public class HomeWork04 {
    public static void main(String[] args) {
        CellPhone cellPhone = new CellPhone();
        cellPhone.testWork(new Calculator() {
            @Override
            public void wor
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值