안녕하십니까. 저는 3 권의 제목/저자를 3 권으로 지정하는 클래스 용 프로그램을 만들고 있습니다. 나는 책 수업, 시험 수업, 후원 수업을 가지고 있습니다. 지금까지 후원자는 시험기에서 그 이름을 모으고 그것을 돌려주고 있습니다. 문제는 수호 클래스, borrowBook 메소드에 있습니다. 테스터는 제목과 이름을 초기화하고 후원자를 만든 다음 borrowBook 메서드의 부울 결과를 인쇄하려고 시도합니다. 나는 borrowBook 메서드가 제목을 설정하려고 할 때 nullpointerexception을 계속 받지만 테스터의 후원자 인 borrowBook에 제목과 저자를 보냅니다. borrowBook의 다른 모든 작성자 & 제목과 동일한 것으로 가정합니다. 어떤 조언을 많이 주시면 감사하겠습니다!NullPointerException을 찾을 수 없습니다.
테스터 등급 :
public class ProjectFiveSix {
public static void main(String[] args) {
String title = "On the Origin of Species";
String name = "Hugo";
String author = "Charles Darwin";
Patron patronOne = new Patron();
System.out.print("The Patron's Name is: " + patronOne.getName(name));
System.out.print("Test " + patronOne.borrowBook(author, title));
수호 등급 :
public class Patron {
private String name;
private Book book1;
private Book book2;
private Book book3;
public Patron(){
name = "";
book1 = null;
book2 = null;
book3 = null;
}
public String getName(String name){
return name;
}
public boolean borrowBook(String title, String author){
if (book1 == null){
book1.getTitle(title);
book1.getAuthor(author);
return true;
}else if (book2 == null){
book2.getTitle(title);
book2.getAuthor(author);
return true;
}else if (book3 == null){
book3.getTitle(title);
book3.getAuthor(author);
return true;
}else{
return false;
}
}
public String toString(String str){
str = name + "\n" + book1;
return str;
}
}
예약 클래스 :
public class Book {
private String title;
private String author;
public Book(){
title = "";
author = "";
}
public String getTitle(String title){
title = title;
return title;
}
public String getAuthor(String author){
author = author;
return author;
}
}
, 내가 대신 = null로 borrowBook의 책을 설정하는 시도로 많은 제안! , 그리고 그것은 어느 정도까지 작동했습니다. 각 도서는 공개 Patron() {}에서 null로 설정되어 있으므로 메서드가 false가됩니다. 말이된다! 그러나 아이디어는 각 책이 null에서 시작하고 borrowBook이 실행될 때 제목과 저자의 현재 값을 찾은 첫 번째 null 책에 할당합니다. 나는 그것을 설정할 수 있다고 가정합니다. 그래서 borrowBook이 false를 반환한다면 Book1에 값을 할당하십시오. 그 다음에는 매번 다음에 true를 반환 할 것이므로이 메소드를 책 2와 3에 사용할 수 있다고 믿지는 않습니다. 그래도 커뮤니티에 큰 감사를드립니다, 여러분들은 큰 도움이됩니다!
답변 - -이 책을 사용하면 중복성이 줄어들고 값을 수정할 수 있습니다. 새로운 책을 만드는 것이 모든 도움을 주셔서 감사합니다.
당신이 예외 스택 추적 – snegi
과거 복사 할 수 민간 분야에 책 클래스 생성자 공급 값을 수 있도록하는 것이 좋습니다 에서 필드 값을 얻으려고 노력하는 당신의'getTitle' 및 'getAuthor' 메소드는 의미가 없습니다. 실제로 전달한 값을 반환하는 것입니다. – MadProgrammer
실제로 스택 추적에서 *보십시오. 문제가 어디 있는지 정확히 알려주므로 수정 사항을 분명히해야합니다. – EJP