Я новичок в java, так извините за несоответствия.Метод вызова из экземпляра класса
Я создаю библиотечную программу, и мне сложно вызвать метод из класса Book в классе Patron.
В классе Patron у меня есть метод checkOutBook(), который пользователь может ввести в книгу для проверки. Однако у меня возникли проблемы с доступом к методу setStatus() в книге. Я знаю, что я должен назвать это против экземпляра класса Book, но я не уверен, как это сделать с введенной пользователем строкой.
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class Book implements BookInterface {
Scanner input = new Scanner(System.in);
static ArrayList <String> UserList = new ArrayList <String>();
static ArrayList <String> BookList = new ArrayList <String>();
public String title;
public String author;
public Book book;
private String status;
private String borrower;
public Book(String t, String a) {
title = t;
author = a;
}
//constructor create new book
public Book(String newTitle) {
title = newTitle;
}
public String toString() {
return title + " " + author;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getStatus(String book) {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public void setBorrower(String borrower) {
this.borrower = borrower;
}
public String getBorrower(String checkPatron) {
return borrower;
}
public String getBook(String checkPatron) {
return book;
}
public void setBook(Book bookCheckOut) {
this.book = bookCheckOut;
}
}
public void CheckOutBook() {
Scanner inputread = new Scanner(System.in);
Scanner input = new Scanner(System.in);
System.out.println("Enter full patron name: ");
String borrower = inputread.nextLine();
System.out.println("Enter book title to check out: ");
String bookCheckOut = inputread.nextLine();
if (Book.BookList.contains(bookCheckOut)) {
Book.BookList.remove(bookCheckOut);
Book.setStatus("OUT"); //error message
Book.setBorrower(borrower); //error message
System.out.println("----------" + bookCheckOut + " has been checked out!----------");
System.out.println("-------------------BOOK STATUS:---------------------");
System.out.println("Book Title: " + bookCheckOut);
System.out.println("Book Status: Checked out");
System.out.println("Borrower: " + borrower);
System.out.println("Due Date: " + dueDate);
System.out.println("----------------------------------------------------");
Я пытался это сделать, но это не сработало :( Спасибо за вашу помощь
Book bookCheckOut = new Book(bookCheckOut); //error: constructor Book(book) undefined
bookCheckOut.setStatus("OUT");
bookCheckOut.setBorrower(borrower);
bookCheckOut.setBook(bookCheckOut);
Java = JavaScript, таким образом фрагменты кода в этом случае недействительны – ThisClark
Книга bookCheckOut = новая книга (bookCheckOut); <- что это? попробуйте это -> «Book bookCheckOut = новая книга (« bookname »); или «Book BookCheckOut = новая книга» («title», «author»); «Помните, что использование одного и того же имени переменной для разных типов переменных является опасным. –
Что вы пытаетесь сделать? посмотрите, и каков результат, который вы в настоящее время получаете? Это помогло бы, если бы вы отправили свою полную программу. –