Я хочу использовать метод isLong() из класса Book и использовать его в displayLongBooks(), который находится в методе BookCollection. Класс BookCollection имеет переменную bookList. Переменный bookList имеет тип ArrayList и содержит коллекцию всех книг. Все объекты в ArrayList имеют тип Book.Проблемы с использованием логического метода в операторе if
import java.util.ArrayList;
public class BookCollection
{
ArrayList<Book> bookList = new ArrayList<Book>();
public BookCollection(){
bookList.add(new Book(1001-01-141514, "Letones", "CS", 611));
bookList.add(new Book(1002-01-141424, "Lewis", "CS", 477));
bookList.add(new Book(1003-01-141434, "Smith", "MATH", 698));
bookList.add(new Book(1004-01-141444, "Smith", "CS", 617));
bookList.add(new Book(1005-01-141454, "Brown", "CHEM", 326));
bookList.add(new Book(1006-01-141464, "Smith", "BIO", 127));
bookList.add(new Book(1007-01-141474, "Sanket", "CS", 998));
}
public String toString()
{
}
public void displayLongBooks()
{
System.out.println();
System.out.println("LONG BOOKS");
if (isLong() == true)
System.out.println(bookList);
}
public void displayBooksFromAuthor(String author)
{
}
public void displayBooksFromArea(String area)
{
}
public void displayAverageLength()
{
}
}
import java.util.*;
import java.io.*;
public class Book
{
String author;
String area;
int isbn;
int pages;
public Book (int isbn, String author, String area, int pages)
{
this.isbn = isbn;
this.author = author;
this.area = area;
this.pages = pages;
}
public boolean isLong()
{
if(pages>600)
return true;
else
return false;
}
public String toString()
{
return "ISBN: " + this.isbn + "Author: " + this.author
+ "Subject: " + this.area + "Pages: " + this.pages;
}
/**PrintWriter outfile = new PrintWriter (new FileWriter("books.txt"));
outfile.write("100101141514, Letones, CS, 611");
outfile.write(100201141424, Lewis, CS, 477);
outfile.write(100301141434, Smith, MATH, 698);
outfile.write(100401141444, Smith, CS, 617);
outfile.write(100501141454, Brown, CHEM, 326);
outfile.write(100601141464, Smith, BIO, 127);
outfile.write(100701141474, Sanket, CS, 998);
outfile.close();**/
}
'если (isLong() == TRUE)' - Нет, просто 'если (isLong())'. И пока мы находимся в этом, отступы ошибочны в 'System.out.println (bookList);'. – JensG
Аналогично, 'isLong()' должен просто возвращать страницы> 600; 'который уже является логическим (либо истинным, либо ложным). – Piovezan
Если 'isLong()' - это метод, определенный в 'Book', вам нужно вызвать его на экземпляр' Book', например. 'Book.isLong()'. – khelwood