面向对象进阶训练任务

本文提供两个面向对象编程的实践任务。第一个任务是设计一个Book类,包含名称和页数属性,页数至少为200页,并实现相应的设置和获取方法及detail方法用于显示信息。第二个任务是描述Java学员类,包括姓名、年龄等属性,探讨使用static修饰属性的合理性。第三个任务涉及衣物类,每个衣物对象都有唯一的递增序号。

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

1、 编写一个类 Book,代表图书: 具有属性: 名称(title)、页数(pageNum),其中页数不能 少于 200 页,否则输出错误信息,并赋予默认值 200。 具有方法: 为各属性设置赋值和取值方法。 detail,用来在控制 台输出每本图书的名称和页数 编写测试类 BookTest 进行测试:为 Book 对象的属性赋予初始 值,并调用 Book 对象的 detail 方法,看看输出是否正确

package part2;
/*1、 编写一个类 Book,代表图书:
        具有属性: 名称(title)、页数(pageNum),其中页数不能
        少于 200 页,否则输出错误信息,并赋予默认值 200。
        具有方法: 为各属性设置赋值和取值方法。 detail,用来在控制
        台输出每本图书的名称和页数
        编写测试类 BookTest 进行测试:为 Book 对象的属性赋予初始
        值,并调用 Book 对象的 detail 方法,看看输出是否正确*/
public class BookTest {

    public static void main(String[] args) {
        book b = new book();
        b.setTitle("红楼梦");
        b.setPageNum(20);
        b.detail();
    }

}
class book{
    String title;
    int pageNum;

    public book() {
    }

    public book(String title, int pageNum) {
        this.title = title;
        this.pageNum = pageNum;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public void setPageNum(int pageNum) {
        if (pageNum<200){

            System.out.println("页码错误,默认值为:"+pageNum);
            this.pageNum=200;
        }else {
            this.pageNum = pageNum;
        }

    }

    public String getTitle() {
        return title;
    }

    public int getPageNum() {
        return pageNum;
    }

    void detail(){
        System.out.println("图书名称:"+getTitle());
        System.out.println("页数:"+getPageNum());

    }

}

 2. 通过类描述xxx的 Java 学员。 具有属性: 姓名,年龄,性别,爱好,公司(都是:xxx

 ), 学科(都是:Java 学科)。 思考:请结合 static 修饰属性进行更好的类设计。

package part2;

public class Test3 {

    public static void main(String[] args) {

        Student s1 = new Student("张三", '男',18, "rap");
        Student s2 = new Student("李四", '男',16, "打篮球");
        Student s3 = new Student("王五", '男',28, "踢足球");
        s1.info();
        s2.info();
        s3.info();
    }
}

    class Student {
        private String name;
        private int age;
        private char sex;
        private String hobby;
        static String company = "xxx";
        static String subject = "java";

        Student(){

        }

        Student(String name,char sex,int age,String hobby){
            this.name = name;
            this.sex = sex;
            this.age = age;
            this.hobby = hobby;
        }

        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;
        }

        public char getSex() {
            return sex;
        }
        public void setSex(char sex) {
            this.sex = sex;
        }

        public String getHobby() {
            return hobby;
        }
        public void setHobby(String hobby) {
            this.hobby = hobby;
        }

        public void info() {
            System.out.println("姓名:" + name + ",性别:" + sex + ",年龄:" + age + ",爱好:" + hobby + ",公司:" + company + ",课程:" + subject );
        }

}

3. 通过类描述衣服, 每个衣服对象创建时需要自动生成一个序号值。 要 求:每个衣服的序号是不同的, 且是依次递增 1 的。

package part2;

public class Test2 {
    public static void main(String[] args) {


    Clothes clothes = new Clothes();
    Clothes clothes1 = new Clothes();
    Clothes clothes2 = new Clothes();
    }
}

class Clothes{
    static int num = 0;

    public Clothes() {
        num++;
        System.out.println(num);
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值