JAVA语言 实验二 面向对象基础

本文介绍了如何设计图书类,包括静态属性(如当前图书对象数)、实例属性和方法(如构造方法、获取/设置属性),以及继承、接口等面向对象概念的应用。通过实例演示了如何实现自动编号和重写toString()方法。

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

一、实验目的

1、了解类的成员设计及类与对象的关系。

2、掌握静态属性与实例属性的使用差异。

3、掌握静态方法与实例方法的使用差异。

4、掌握继承、接口、抽象类和多态性。

二、实验环境

       Windows,IDEA

三、实验内容

       定义一个图书类,其属性有书名、编号、定价和静态属性当前图书对象数。类中有无参构造方法和带2个参数(书名、书价)的构造方法,获取、设置书名和定价的方法,以及重写的toString()方法。书的编号采用自动编号,第1本书的编号为1,第2本书的编号为2,以此类推。并编写程序进行测试。

       提示:在构造方法中,使用静态属性当前图书对象数为书对象的编号赋值。

四、完成情况

五、源代码

package com.ch;
public class Book {
    private String title;
    private int number;
    private double price;
    private static int numberOfBooks = 0;

    public Book() {
        numberOfBooks++;
        this.number = numberOfBooks;
    }

    public Book(String title, double price) {
        numberOfBooks++;
        this.number = numberOfBooks;
        this.title = title;
        this.price = price;
    }

    public String getTitle() {
        return title;
    }

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

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    @Override
    public String toString() {
        return "书名:" + title + ",编号:" + number + ",定价:" + price;
    }

    public static void main(String[] args) {
        Book book1 = new Book();
        book1.setTitle("Java入门基础");
        book1.setPrice(29.99);

        Book book2 = new Book("Python入门基础", 19.99);

        System.out.println(book1);
        System.out.println(book2);
    }
}

六、程序运行结果截图

七、小结

       知识掌握情况;存在的问题,如何解决

问题1: 如何设计静态属性来计数当前图书对象数?

解决方法: 可以使用一个静态变量来记录当前图书对象数,每次创建新的图书对象时,静态变量自增1。

问题2: 如何实现自动编号?

解决方法: 可以使用一个静态变量来记录当前图书的编号,每创建一个新的图书对象时,将静态变量值赋给图书对象的编号属性,然后静态变量自增1。

问题3: 如何定义无参构造方法和带2个参数的构造方法?

解决方法: 在类中创建一个无参数的构造方法和一个带2个参数的构造方法,分别用于初始化对象时,可以选择传入书名和书价或者不传入任何参数。

问题4: 如何获取和设置书名和定价的方法?

解决方法: 可以创建对应的get和set方法用于获取和设置书名和定价。

问题5: 如何重写toString()方法?

解决方法: 可以在图书类中重写toString()方法,根据需要将对象的属性转化为字符串形式,并返回该字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值