Java程序设计——继承和接口

一、目的(本次实验所涉及并要求掌握的知识点)

  1. 掌握类的继承复用技术。
  2. 掌握接口设计技术。
  3. 理解多态技术。
  4. 理解常用的设计模式
  5. 初步能进行Java面向对象的综合设计

二、题目:

设计一个图书信息维护程序:利用链表LinkedList进行图书信息列表的存储和操作,能按书号搜索、增加、删除、修改一个图书信息。

a、设计思路:

  1. Book 类设计: 创建一个 Book 类,包含图书的属性(书名、书号、作者、价格)和相应的 getter 和 setter 方法。
  2. Test 类设计: 主要的测试类 Test 中使用 LinkedList<Book> 来存储图书信息。提供添加、搜索、删除、更新等操作的方法。
  3. 用户交互设计: 使用 Scanner 类来获取用户输入,通过循环和条件语句来实现用户交互。用户可以选择添加图书,以及是否使用搜索、删除、更新功能。

b、主要代码结构:

  1. Book类:包含了图书的名称、编号、作者和价格等属性,以及对应的getter和setter方法。
  2. 主函数:创建了一个LinkedList链表用于存储Book对象,并添加了一些预设的图书信息。然后,使用for-each循环遍历链表,打印出每本图书的信息。

c、主要代码段的文字分析:

  • Book 类的构造函数和 toString 方法: 构造函数初始化图书的属性,toString 方法用于返回图书信息的字符串表示。
  • Test 类的 addBook 方法: 通过用户输入创建图书对象,并添加到 bookList 中,然后输出成功添加的信息。
  • Test 类的 searchBook 方法: 用户输入要搜索的书号,遍历 bookList 查找匹配的图书,并输出找到的图书信息。
  • Test 类的 deleteBook 方法: 用户输入要删除的书号,使用迭代器遍历 bookList,找到匹配的图书并删除,输出删除成功的信息。
  • Test 类的 updateBook 方法: 用户输入要更新的书号和新的图书信息,遍历 bookList 找到匹配的图书并更新,输出更新成功的信息。
  • 用户交互部分: 使用 Scanner 获取用户输入,通过循环和条件语句实现添加图书、选择是否使用搜索、删除、更新功能的交互。

d、输出结果截图:

图2-3

代码:

package NUM3;

import java.util.LinkedList;

class Book {
    private String bookName;
    private String bookNum;
    private String bookAuthor;
    private String bookPrice;

    public Book(String bookName, String bookNum, String bookAuthor, String bookPrice) {
        this.bookName = bookName;
        this.bookNum = bookNum;
        this.bookAuthor = bookAuthor;
        this.bookPrice = bookPrice;
    }

    public String getBookName() {
        return bookName;
    }

    public String getBookNum() {
        return bookNum;
    }

    public String getBookAuthor() {
        return bookAuthor;
    }

    public String getBookPrice() {
        return bookPrice;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public void setBookNum(String bookNum) {
        this.bookNum = bookNum;
    }

    public void setBookAuthor(String bookAuthor) {
        this.bookAuthor = bookAuthor;
    }

    public void setBookPrice(String bookPrice) {
        this.bookPrice = bookPrice;
    }
}


public class Test {
    public static void main(String args[]) {
        LinkedList<Book> bookList = new LinkedList<Book>();
        bookList.add(new Book("Java", "1", "A", "100"));
        bookList.add(new Book("C++", "2", "B", "200"));
        bookList.add(new Book("Python", "3", "C", "300"));
        bookList.add(new Book("C", "4", "D", "400"));
        bookList.add(new Book("C#", "5", "E", "500"));
        bookList.add(new Book("PHP", "6", "F", "600"));
        bookList.add(new Book("JavaScript", "7", "G", "700"));
        bookList.add(new Book("Ruby", "8", "H", "800"));
        bookList.add(new Book("Go", "9", "I", "900"));
        bookList.add(new Book("Swift", "10", "J", "1000"));

        for (Book book : bookList) {
            System.out.println(book.getBookName() + " " + book.getBookNum() + " " + book.getBookAuthor() + " " + book.getBookPrice());
        }
    }
}
  • 28
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值