Objektorientierung ?

Status
Nicht offen für weitere Antworten.

Dali

Mitglied
Hallo! Diese Aufgabe steht unter: http://www.ai.wu-wien.ac.at/~hahsler/JAVA/examples_open/book/


Hier mein code:
Code:
class Page{
	String content;
	
	Page(String content){
		this.content=content;
	}
	void write(String content){
		this.content=content;
	}
	String read(){
		return content;
	}
	void clear(){
		content=null;
	}
}

class Book{
	int i;
	String titel;
	Page[] p=new Page[100];
	
	Book(String titel, int i){
		this.i=i;
		this.titel=titel;
		p=new Page[i];
		}	
	
	String write(int i, String b){	
	 	return p[i-1].content=b;
	}
	String get_title(){
		return titel;
	}
	String read(int i){
		return p[i-1].content;
	}
	void clear(){
		titel=null;
		p=null;
	}
	
}
class ABook {
  public static void main (String[] arg) {
    Book mybook= new Book("Mein Tagebuch",20);

    mybook.write(3,"Hallo 3. Seite!");
    mybook.write(5,"Ich bin Seite Nr.5");
 
    System.out.println("Titel: " + mybook.get_title());
    System.out.println(mybook.p.length);
    System.out.println("Seite 5: " + mybook.read(5));
    System.out.println("Seite 3: " + mybook.read(3));
    mybook.clear();
    System.out.println("Clearing book ...");
    System.out.println("Seite 3: " + mybook.read(3));
    System.out.println("Seite 40: " + mybook.read(40));
    
  }
}

wo habe ich nur den fehler, da sie Ausführung immer
Exception in thread "main" java.lang.NullPointerException
at Book.write(ABook.java:13)
at ABook.main(ABook.java:31) anzeigt!
Grüß!
 

Redfrettchen

Bekanntes Mitglied
Hi,
du setzt doch mit clear titel und p auf null, willst dann aber später nochmal per read(int) darauf zugreifen. In dieser Methode wird versucht den Array-Operator auf eine null-Referenz anzuwenden, was natürlich scheitert.
Also:
Code:
public String read(int i) {
    if (p==null || i<=p.length) return ""; // leere Seite eben ^^
    return p[i-1].content; // <- hier schönerweise eine getContent()-Methode in Page bauen!
}
 

Dali

Mitglied
Habe jetzt versucht, auch ohne clear Methode probiert und ohne clear nachfrage in main, geht aber weiter nicht. Compilieren gehts, jedoch dieselbe Antwort. Irgendwie funkt das nicht so.

Trotzdem Dankeschön!
 

Dali

Mitglied
genau! Dass war der Punkt! Thanks! :toll:

jetzt bin ich glücklich.

Code:
class Page{
	String content;
	
	Page(String text){
		write(text);	
	}
	Page(){}
	public void write(String text){
		content=text;
	}
	public String read(){
		return content;
	}
	public void clear(){
		content="";
	}
}
class Book{
	String title;
	Page [] p;
	
	Book(String name, int s){
		title=name;
		p= new Page[s];   // Array erzeugen
		for(int i=0;i<p.length;i++){   
			p[i]=new Page("new page");  //Page erzeugen
		}
	}
	Book(){}
	
	public void write(int i, String text){
		p[i-1].write(text);
	}
	
	public String read(int i){
		return p[i-1].read();
	}
	
	public void clear(){
	title="";
	for(int i=0;i<p.length;i++){
		p[i].clear();
	}
	}
	public String get_title(){
	return title;
	}

}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
L Einführung Objektorientierung Java Basics - Anfänger-Themen 8
L Einstieg Objektorientierung Java Basics - Anfänger-Themen 10
H Wie geht eigentlich Objektorientierung? Java Basics - Anfänger-Themen 14
L Objektorientierung Java Basics - Anfänger-Themen 6
B Objektorientierung Java Basics - Anfänger-Themen 1
M Array und Objektorientierung? - TicTacToe Spiel Java Basics - Anfänger-Themen 43
T Objektorientierung-Kurze Frage Java Basics - Anfänger-Themen 5
L Hilfe! Objektorientierung Java Basics - Anfänger-Themen 3
S OOP Zusammenhang von Objektorientierung und Ausnahmebehandlungen Java Basics - Anfänger-Themen 6
C Objektorientierung? Java Basics - Anfänger-Themen 5
G Designfrage/Objektorientierung Java Basics - Anfänger-Themen 19
S Methoden Aufgabe zu ""Methoden" und "Objektorientierung" Java Basics - Anfänger-Themen 3
B OOP Programm zur Verdeutlichung von Objektorientierung Java Basics - Anfänger-Themen 7
T Initialisierungen der einzelnen Klassen - Objektorientierung Java Basics - Anfänger-Themen 4
B Objektorientierung Java Basics - Anfänger-Themen 2
W Einstieg Objektorientierung Java Basics - Anfänger-Themen 4
X Objektorientierung Einführung Java Basics - Anfänger-Themen 2
A Objektorientierung Klassen Java Basics - Anfänger-Themen 4
D Objektorientierung / Polymorphismus Java Basics - Anfänger-Themen 8
Spin Objektorientierung . Konzept Java Basics - Anfänger-Themen 4
M Objektorientierung Java Basics - Anfänger-Themen 3
M Objektorientierung - wie macht man's richtig? Java Basics - Anfänger-Themen 3
R ObjektOrientierung Java Basics - Anfänger-Themen 18
D Objektorientierung Listen Java Basics - Anfänger-Themen 2
J objektorientierung und uml Java Basics - Anfänger-Themen 5
D Objektorientierung - wie konsequent sollte man sein ? Java Basics - Anfänger-Themen 30
D Zuerst Objektorientierung oder GUI ? Java Basics - Anfänger-Themen 19

Ähnliche Java Themen

Neue Themen


Oben