Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich soll die Klasse Page implementieren. Wie muss diese aussehen, damit folgende Klasse funktioniert:
Code:
class OnePage {
public static void main (String[] arg) {
String text = "Das ist ein Text!";
Page p1 = new Page();
p1.write(text);
System.out.println(p1.read());
p1.clear();
}
}
Ich wollt nur mal das mit dem write zusammenbringen und habs folgendermaßen versucht:
Code:
class SomePages {
public static void main (String[] arg)
{
String text = "Das ist ein Text!";
Page p1 = new Page();
p1.write(text);
System.out.println(p1);
}
}
class Page
{
String x;
public void write(String x)
{
this.x = x;
}
}
Damit bekomme ich dann die Ausgabe "Page@10b62c9".
kannst auch noch die toString() Methode überschreiben, allerdings ist das wohl der Sinn u. Zweck von deinem read den Wert entsprechend zurück zu geben......diesen dann im System.out.println(..) auszugeben.
class Page {
private String text;
// Konstruktor
public Page() {}
// Methoden
//hier eine setter-Methode, die SETzt die Variable text auf den String
//den du übergibst!
public void write(String text) {
//selber überlegen, was man hier machen muss
}
//hier eine getter-Methode, die gibt dir die Variable text aus!
public String read() {
// hier muss ein Befehl rein, der dir die Variable text zurückgibt...
}
//mit dieser Methode wird die Variable text wieder gelöscht
public void clear() {
this.text = "";
}
}
Ich muss jetzt noch die Instanz p2 erstellen, wie geht das?
Code:
class SomePages {
public static void main (String[] arg) {
String text = "Das ist ein Text!";
Page p1 = new Page();
Page p2 = new Page("Ich bin die 2. Seite!");
p1.write(text);
System.out.println(p1.read());
System.out.println(p2.read());
p1.clear();
}
}
Mein bisheriger Code:
Code:
class Page
{
String x;
public String read ()
{
return x;
}
public void write(String x)
{
this.x = x;
}
public void clear()
{
this.x="";
}
}
Ich bekomme die Fehlermeldung
.....\SomePages.java:5: cannot find symbol
Nun musst du deine Klasse Page um einen Konstruktor erweitern, dem man einen String übergeben kann, und der diesen String in deine Variable x hineinschreibt
Nun musst du deine Klasse Page um einen Konstruktor erweitern, dem man einen String übergeben kann, und der diesen String in deine Variable x hineinschreibt
denk doch mal nach was passiert wenn du Book#write aufrufst:
Der alte wert wird überschrieben.
Das sollte wenn dann so aussehen:
Abook hat nen Konstruktror dem der Name des Buches und die Anzahl der Seiten übergeben wirt
Abook hat ne Variable seiten vom Typ Page (als Array)
Im Konstruktor wird ein array mit der übergebenen länge erzeugt
Abook hat noch ne Methode addPage(Page p), ne Methode readPage(int index) und mehr brauchst du glaub ich net
da du dich anscheinend bemühst post ich mal ein bisschen code..
ungefähr so:
Code:
//Page.java
public class Page{
private String text;
public Page(){
this.text = "";
}
public Page(String text){
this.text = text;
}
public void write(String text){
this.text = text;
}
public String read(){
return text;
}
public void clear(){
text = "";
}
}
Soweit warst du ja schon..jetzt die Klasse Book
Code:
public class Book{
//Das hier ist ein Array für die Seiten
private Page[] seiten;
private String bookTitle;
private int seitenAnzahl;
public Book(final int seitenAnzahl, String bookTitle){
//Jetzt das Array erzeugen
seiten = new Page[seitenAnzahl];
this.seitenAnzahl = seitenAnzahl;
this.bookTitle = bookTitle;
}
public void write(int seite, String text){
if(seite >= 0 && seite < anzahlSeiten){
seiten[seite] = new Page(text);
}
}
public String read(int seite){
if(seite >= 0 && seite < anzahlSeiten)
return seiten[seite].read();
return "Seite nicht vorhanden";
}
}
public class Book{
//Das hier ist ein Array für die Seiten
private String[] seiten;
private String bookTitle;
private int seitenAnzahl;
public Book(final int seitenAnzahl, String bookTitle){
//Jetzt das Array erzeugen
seiten = new String[seitenAnzahl];
this.seitenAnzahl = seitenAnzahl;
this.bookTitle = bookTitle;
}
public void write(int seite, String text){
if(seite >= 0 && seite < anzahlSeiten){
seiten[seite] = text;
}
}
public String read(int seite){
if(seite >= 0 && seite < anzahlSeiten)
return seiten[seite];
return "Seite nicht vorhanden";
}
}
Hat das deshalb nicht funktioniert, weil mein Programm versucht hätte in alle Seiten "leer" hinzushreiben, auch in jene (zB Seite4) die noch gar nicht erstellt wurden?
Das hat nicht an dem Wort "leer" gelegen, schau dir den Code von KSG9 mal an und vergleiche. Er stellt noch sicher das er darauf zugreifen kann, also ob es ungleich null ist.