自拟题目,结合自己选定的事物,定义一个或多个类,并在主类中创建和使用这些类的对象。要注意符合以下语言特性运用的要求。 (1)类要有成员变量和成员方法。 (2)要定义构造方法。 (3)运用访问控制做到更好地封装(定义私有成员变量并公开setter/getter方法)。
时间: 2024-10-11 07:07:37 浏览: 40
假设我们要创建一个简单的图书馆管理系统,我们可以定义两个类:图书(Book)和读者(Reader)。
```java
// 定义图书类 Book
class Book {
private String title; // 私有成员变量 - 图书标题
private int isbn; // 私有成员变量 - ISBN号
// 构造方法
public Book(String title, int isbn) {
this.title = title;
this.isbn = isbn;
}
// 公开getter和setter方法
public String getTitle() { return title; }
public void setTitle(String title) { this.title = title; }
public int getIsbn() { return isbn; }
public void setIsbn(int isbn) { this.isbn = isbn; }
// 成员方法 - 显示图书信息
public void displayInfo() {
System.out.println("Title: " + title + ", ISBN: " + isbn);
}
}
// 定义读者类 Reader
class Reader {
private String name; // 私有成员变量 - 读者姓名
private List<Book>借阅列表; // 私有成员变量 - 该读者借阅的图书列表 (这里为了简化,用List模拟)
// 构造方法
public Reader(String name) {
this.name = name;
this.借阅列表 = new ArrayList<>();
}
// 公开getter和setter方法
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public List<Book> getBorrowedList() { return 借阅列表; }
public void setBorrowedList(List<Book> borrowedList) { this.借阅列表 = borrowedList; }
// 成员方法 - 借阅书籍
public void borrowBook(Book book) {
if (!借阅列表.contains(book)) {
借阅列表.add(book);
book.displayInfo();
System.out.println(name + " borrowed the book.");
} else {
System.out.println(name + " already has this book.");
}
}
}
// 主类中创建和使用对象
public class LibraryApp {
public static void main(String[] args) {
// 创建图书对象
Book book1 = new Book("The Great Gatsby", 123456789);
book1.displayInfo();
// 创建读者对象
Reader reader1 = new Reader("Alice");
// 借阅书籍
reader1.borrowBook(book1);
// 调整访问权限,展示如何通过getter和setter操作内部数据
reader1.setName("Bob"); // 修改读者名称
System.out.println(reader1.getName()); // 输出新名称
}
}
```
在这个例子中,我们应用了类、构造方法、成员变量和方法,以及访问控制(私有成员变量和公开的getter/setter)。读者可以借阅图书,体现了多态性(尽管这里是直接引用图书对象,但在实际扩展时读者类可能处理多种类型的图书)。
阅读全文
相关推荐


















