1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
大专栏
java第九次课n class="line">111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
|
Book.java
public class Book { //属性 private int bookId;//书籍号 private String bookName;//书的姓名 //构造方法 public Book(int bookId,String bookName){ this.bookId=bookId; this.bookName=bookName; } //重写equals public boolean equals(Object obj) { Book b = (Book)obj; //比较的是Book类 if(obj instanceof Book){ if(this.bookName.equals(b.bookName)){ return true; } } return false; } //封装 public int getBookId() { return bookId; } public void setBookId(int bookId) { this.bookId = bookId; } public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName = bookName; } }
Reader.java
public interface Reader { //借书 public abstract void borrowBook(int number); //还书 public abstract void takeBook(int number); //搜索书籍 public abstract boolean findBook(Book book,Library lib); }
Student.java
public class Student extends Person implements Reader{ //属性 private int studentNumber;//学号 private String major;//专业 private int bookNumberMax;//借书上限 private static int bookNumber;//已借的数量 需要记录 //构造方法 public Student(int studentNumber,String major,int bookNumberMax,String name){ this.setName(name); this.studentNumber=studentNumber; this.major=major; this.bookNumberMax=bookNumberMax; this.bookNumber=0; } //封装 public int getStudentNumber() { return studentNumber; } public void setStudentNumber(int studentNumber) { this.studentNumber = studentNumber; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } public int getBookNumberMax() { return bookNumberMax; } public void setBookNumberMax(int bookNumberMax) { this.bookNumberMax = bookNumberMax; } public int getBookNumber() { return bookNumber; } public void setBookNumber(int bookNumber) { this.bookNumber = bookNumber; } //方法重写 //借书 number为接几本 public void borrowBook(int number){ //借书数量增加 如果没达到上限的话 if(this.bookNumber+number<=this.bookNumberMax) { this.bookNumber+=number; System.out.println("借书成功"); System.out.println(this.getName()+"借了"+bookNumber+"本"); } else { System.out.println("借书失败超过上限"); System.out.println(this.getName()+"借了"+bookNumber+"本"); } } //还书 number为借几本 public void takeBook(int number){ //书的数量减少 判断合不合条件 if(this.bookNumber-number>=0) { this.bookNumber-=number; System.out.println("还书成功"); System.out.println(this.getName()+"还了"+number+"本"); } else { System.out.println("还书失败,没有这么多本"); //System.out.println(this.getName()+"还了"+number+"本"); } } //搜索书籍 public boolean findBook(Book book,Library lib){ //获取数组 Book [] b = lib.getBooks(); //System.out.println(lib.getBookNumber()); for(int i = 0;i < b.length ;i++) { if(b[i].getBookName().equals(book.getBookName())) { return true; } } return false; } }
Book.java
public class Book { //属性 private int bookId;//书籍号 private String bookName;//书的姓名 //构造方法 public Book(int bookId,String bookName){ this.bookId=bookId; this.bookName=bookName; } //重写equals public boolean equals(Object obj) { Book b = (Book)obj; //比较的是Book类 if(obj instanceof Book){ if(this.bookName.equals(b.bookName)){ return true; } } return false; } //封装 public int getBookId() { return bookId; } public void setBookId(int bookId) { this.bookId = bookId; } public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName = bookName; } }
Library.java
//static 变量可以 直接 在成员变量上初始化 public class Library { //属性 private String name;//图书馆名字 private Student [] student;//记录学生信息 private static int studentNumber;//学生数量 public Book [] books;//记录书籍 private static int bookNumber;//书籍数量 //构造方法 //Number 得为1 再写 Student [] student视为一个新数组 因为重新定义了 找了半天 傻了 public Library(String name){ this.name=name; this.studentNumber=1; student = new Student[10]; this.bookNumber=1; books = new Book[10]; } //封装 public String getName() { return name; } public void setName(String name) { this.name = name; } public Student[] getStudent() { return student; } public void setStudent(Student[] student) { this.student = student; } public int getStudentNumber() { return studentNumber; } public void setStudentNumber(int studentNumber) { this.studentNumber = studentNumber; } public Book[] getBooks() { return books; } public void setBooks(Book[] books) { this.books = books; } public int getBookNumber() { return bookNumber; } public void setBookNumber(int bookNumber) { this.bookNumber = bookNumber; } //方法 新加学生 public void addStudent(Student student){ //人数增加 数组纳入新的学生 this.student[studentNumber-1] = student; studentNumber++; //this.student = new Student[studentNumber]; } //方法 新加入书籍 //如果在构造函数里的话,大小一开始就定格了 所以出了溢出的错 //但是如果重新声明的话 之前存的全没了 //解决方法 直接定义一个大的数组 public void addBook(Book book){ //书的数量增加 //System.out.println(bookNumber); this.books[bookNumber-1]=book; bookNumber++; //this.books = new Book[bookNumber]; } }
Test.java
//测试 public class Test { public static void main(String[] args) { Library library = new Library("哈哈哈图书馆"); Book book = new Book(1001,"1书"); Book book2 = new Book(1002,"2书"); Student stud = new Student(1,"软件",5,"王同学"); library.addBook(book); library.addBook(book2); library.addStudent(stud); /*for(int i = 0;i<library.books.length;i++){ System.out.println(library.books[i]); }*/ stud.borrowBook(2); stud.takeBook(2); System.out.println(stud.findBook(book, library)); } }
|