geht oder geht nicht?

Need_Help1993

Bekanntes Mitglied
Ich habe folgende Klassen gegeben:
Java:
 class ClassA {
public int x = 0;
private String y = "none";
public static boolean b = false;

public String getY(){
return y;
}

private void doStuff(){
//...
}
}
und
Java:
class TestclassB extends ClassA
{
private int z = 0;

public void test()
{
//HIER EINFÜGEN
}
}

in der Testklasse soll bei //Hier einfügen folgende Anweisungen eingefügt werden:
1. X = 1;
2. b = true;
3. String s = getY();
4. doStuff();
5. y = "abc"
6. z = 1;

jetzt soll ich sagen, ob die zulässig sind oder nicht.

ich habe schonmal ausprobiert und soweit ich kann die Anweisungen analysiert.
1. zeigt keine Fehler beim compilieren
2. scheint einwandfrei zu funktionieren
3. the local variable is never read ( was heißt das? --- ist nur eine Empfehlung)
4. Attribut ist private, also kann die Methode nicht drauf zugreifen
5. Attribut ist private, also kann nicht darauf zugegriffen werden
6. scheint auch zu gehen?

stimmt das soweit bzw. was passiert bei 3.
 
Zuletzt bearbeitet von einem Moderator:

Michael...

Top Contributor
1. zeigt keine Fehler beim compilieren
das bezweifel ich ;-) Zumindest, wenn die Zeile 1 so im Code steht. Java unterscheidet zwischen Groß- und Kleinschreibung x vs. X
3. the local variable is never read ( was heißt das? --- ist nur eine Empfehlung)
ist ein Hinweis, dass die Variable nirgends gelesen wird und daher mit hoher Wahrscheinlichkeit nicht benötigt wird.
Abgesehen, dass 4 und 5 wie selbst festgestellt nicht geht, fehlt in Zeile 5 noch der Semikolon am Ende - eventuell ein Übertragungsfehler.
 

Need_Help1993

Bekanntes Mitglied
this methode requires a body instead of a semicolon zeigt er mir an, wenn ich da ein Semikolon setzte.

also
1, 2 gehen
3. geht, macht aber kein sinn
4 5 gehen nicht
6. geht
 
Zuletzt bearbeitet von einem Moderator:

Need_Help1993

Bekanntes Mitglied
jetzt haben wir das ganze Spielchen noch für "fortgeschrittene", und da steige ich nichtmehr so genau durch....

Klasse A und B bleiben bestezen.
hinzu kommt Klasse C
Java:
 class TestclassC //(müsste hier nicht noch extends ClassA stehen?)
{
void other()
{
ClassA inst = new ClassA();
//hier einfügen

}
}

1. TestclassB.x = 1;
2. ClassA.b = true;
3. doStuff();
4. inst.x = 1;
5. inst.test();
6. x = 1;

3. dürfte immer noch nicht gehen wegen dem private
6. müsste funktionieren

aber beim rest habe ich keinen blassen schimmer...
 
Zuletzt bearbeitet von einem Moderator:

Michael...

Top Contributor
Ich nehme mal an, dass TestclassC absichtlich nicht von einer der anderen Klassen erbt.
Dann gilt:
3. geht nicht weil diese Klasse keine solche Methode besitzt
6. geht nicht weil diese Klasse keine solche Intanzvariable besitzt.

Beim Rest darfst Du noch ein bisschen überlegen. Was sind denn Deine Vermutungen?
 

Need_Help1993

Bekanntes Mitglied
also wenn Testklasse c nicht erbt würde ich mal vermuten, dass
1. geht, weil x = 1 in Testklasse B funktioniert hat, und wenn wir das jetzt aus Testklasse c aufrufen müsste es ja auch funktionieren
2. müsste gehen, weil wir uns ja direkt auf Klasse A beziehen, und der booelan dort public ist
4. ich weiß nicht wofür inst steht, also habe ich da echt keinen blassen schimmer.... aber weil x = 1 oben schonmal funktioniert hat würde ich sagen der geht nicht (ich weiß ist ziemlich abenteuerlich :D )
5. könnte irgendwas mit der new A methode zu tun haben und könnte meiner ansicht nach vill. funktionieren
 
Zuletzt bearbeitet von einem Moderator:

Michael...

Top Contributor
also wenn Testklasse c nicht erbt würde ich mal vermuten, dass
1. geht, weil x = 1 in Testklasse B funktioniert hat, und wenn wir das jetzt aus Testklasse c aufrufen müsste es ja auch funktionieren
2. müsste gehen, weil wir uns ja direkt auf Klasse A beziehen, und der booelan dort public ist
4. ich weiß nicht wofür inst steht, also habe ich da echt keinen blassen schimmer.... aber weil x = 1 oben schonmal funktioniert hat würde ich sagen der geht nicht (ich weiß ist ziemlich abenteuerlich :D )
5. könnte irgendwas mit der new A methode zu tun haben und könnte meiner ansicht nach vill. funktionieren
Scheint als sind Dir die Bedeutung von und der Umgang mit Instanzvariablen, statischen Variablen und Objekten noch nicht so ganz klar ;-)
1. geht nicht, weil hier versucht wird statisch auf eine Instanzvariable zu zugreifen
2. geht, aber Deine Begründung ist nicht ganz korrekt
4. inst ist eine Variable die auf ein Objekt vom Typ ClassA referenziert welches in dem Code zuvor erzeugt wird. und obwohl x = 1 oben nicht funktioniert hat ;-) funktioniert es hier, da über eine Objektinstanz auf die öffentliche Variable zugegriffen wird.
5. funktioniert nicht, da in ClassA keine Methode test() definiert ist.
 

beastofchaos

Bekanntes Mitglied
this methode requires a body instead of a semicolon zeigt er mir an, wenn ich da ein Semikolon setzte.

Also sowas sagt er z.B. wenn du in so einer normalen Klasse schreibst:
Code:
public void test();

So eine Methode braucht immer einen "body" begrenzt durch { und }. Die Fehlermeldugn sagt dir ja, dass diese body fehlt und stattdessen an der Stelle ein Semikolon ist...

Gruß, Thomas
 

Need_Help1993

Bekanntes Mitglied
du scheinst mir äußerst kompetent, darum würde ich dich bitten mal kurz hier drüber zu schauen:
aufgabenstellung ist folgende:
Entwerfen Sie eine Beispielklasse, die mindestens zwei nicht-statische Attribute, ein
statisches Attribut und eine beliebige Methode enthält. Die Klasse soll dabei an ein
real existierendes Konzept angelehnt sein. Stellen Sie sicher, dass das statische Attribut tatsächlich ein
Attribut darstellt, das in Ihrem Beispiel nur einmal global für die gesamte Klasse ge-
speichert werden muss. Implementieren Sie die Klasse. Der Methodenrumpf darf leer
sein.
Java:
public class Haus {

static int hausnummernCounter = 1; //setzt einen static Wert
int hausnummer; //Hausnummer

int grundfläche; //Grundfläche des gesamten Hauses

String besitzername; //Name des Besitzers

public Haus() {
hausnummer = hausnummernCounter++; //dient dazu die Hausnummer festzulegen (zählt)
}

public String getBesitzername(){ //getter Methode
return besitzername; //gibt den Namen des Hausbeitzers zurück
}
}

passt das soweit? .... mit dem static bin ich mir in meiner Klasse hier ziemlich unsicher....
 
Zuletzt bearbeitet von einem Moderator:

njans

Top Contributor
du scheinst mir äußerst kompetent, darum würde ich dich bitten mal kurz hier drüber zu schauen:
aufgabenstellung ist folgende:
Entwerfen Sie eine Beispielklasse, die mindestens zwei nicht-statische Attribute, ein
statisches Attribut und eine beliebige Methode enthält. Die Klasse soll dabei an ein
real existierendes Konzept angelehnt sein. Stellen Sie sicher, dass das statische Attribut tatsächlich ein
Attribut darstellt, das in Ihrem Beispiel nur einmal global für die gesamte Klasse ge-
speichert werden muss. Implementieren Sie die Klasse. Der Methodenrumpf darf leer
sein.
Java:
public class Haus {
	
    static int hausnummernCounter = 1; 			//setzt einen static Wert 
    int hausnummer;							    //Hausnummer
    
    int grundfläche;							//Grundfläche des gesamten Hauses
    
    String besitzername; 						//Name des Besitzers
 
    public Haus() {
        hausnummer = hausnummernCounter++; 		//dient dazu die Hausnummer festzulegen (zählt)
    }
    
    public String getBesitzername(){ 			//getter Methode
    	return besitzername;					//gibt den Namen des Hausbeitzers zurück
    }
}
passt das soweit? .... mit dem static bin ich mir in meiner Klasse hier ziemlich unsicher....

Wir sind hier (beinahe) alle kompetent ;)
ja, deine Klasse passt so. Sollte auch einwandfrei funktionieren.

EDIT: Man kanns natürlich auch etwas "sinnvoller" machen:

Java:
public class Haus {
	
    static int hausnummernCounter = 1; 			//setzt einen static Wert 
    int hausnummer;							    //Hausnummer
    int grundfläche;							//Grundfläche des gesamten Hauses
    String besitzername; 						//Name des Besitzers
 
    public Haus(String besitzer, int flaeche) {
        hausnummer = hausnummernCounter++; 		//dient dazu die Hausnummer festzulegen (zählt)
        // Umlaute sollte man nicht im Code verwenden, da gibts öfters mal Probleme mit 
        grundfläche = flaeche;
        besitzername = besitzer;
    }
    
    public String getBesitzername(){
        // Wenn du "besitzername" nichts zuweißt, dann wird das von Java mit null initialisiert
        // Daher auch die Parameter im Konstruktor  
    	return besitzername;					//gibt den Namen des Hausbeitzers zurück
    }
}
 
Zuletzt bearbeitet:

Need_Help1993

Bekanntes Mitglied
na das ist ja lustig :D
naja ... aber ich versuche wenigstens es selbst zu machen soweit es geht., und an meinen defiziten zu arbeiten
unser herr kollege hat für nen statischen wert nichtmal static eingetragen.... ich denke das sagt alles ;)

woher kennst du den den guten mann? :D
 
Zuletzt bearbeitet von einem Moderator:

beastofchaos

Bekanntes Mitglied
Also, ich würd zu simpleren Variablen und Methoden greifen. Als Methode vll "bauHaus()", da das wirklich bei jedem Haus Verwendung findet. Zwar braucht man auch den Besitzernamen, aber kein gutes Beispiel meiner Ansicht nach.
Variablen hast du schon zwei gute Sachen genannt, als statische würde ich was andres nehmen, was viel allgemeineres. Z.B. häuserCounter(wie viele Häuser gibts auf der Welt), höhenMaximum(höchste bisher erreichte Höhe bei einem Haus) oder ieine Eigenschaft, die wirklich jedes Haus hat. Vll. iein Grunsatz, wie z.B. ... ähhm... öööh.... ich überleg jetzt schon ne ewigkeit, aber nicht jedes Haus hat Vierecken. Es gibt, glaub ich, auch kein gesetztes Maximum an Wohnsitzen oder Fenstern. Haus ist da vll. ein schwieriges Beispiel für so ne statische Eigenschaft, aber dann nimm einfach isonen Counter, wie schon vorgeschlagen ;) Bei Auto könnte man vll. sagen "public static int ageMinimum = 18", vll geht das ja auch beim Haus, da kenn ich mich mit den Gesetzen nicht so aus :/

Gruß, Thomas
 

Need_Help1993

Bekanntes Mitglied
Ich habe nach der Aufgabenstellung gegoogelt. Was übrigens zu beachten ist: Tutoren können auch googeln ;)

klar, aber wie du siehst bin ich da auch nicht alleine....
und was soll ich den amchen, wenn ich nicht weiter weiß? ich lasse mir ja nicht den gesamten code von anderen schreiben, sondern frage nur bei problemen nach einzelnen teillösungen, damit ich weiter machen kann :)
 

Need_Help1993

Bekanntes Mitglied
nach dem ändern auf den verbesserten source code habe ich gerade ein kleines problem mit meiner Unterklasse

Java:
 class Wohnung extends Haus //Klasse Wohnung erbt von Klasse Haus
{
static int gesamtanzahl_der_wohnungen; //static Wert auf die Anzahl der Wohnungen in dem Haus
}

er zeigt mir die Fehlermeldung:
Must define an explizit constructor
 
Zuletzt bearbeitet von einem Moderator:

XHelp

Top Contributor
Wenn die Oberklasse keinen default-Konstruktor hat, dann musst du einen angeben:
Java:
class Wohnung extends Haus {
  public Wohnung(String besitzer, int flaeche) {
    super(besitzer,flaeche);
  }
}
Aber wie Marco schon in dem anderen Thread geschrieben hat: das Beispiel ergibt nur bedingt Sinn.
Außerdem sollte man auch nur in einem Thread darüber reden.
 

hdi

Top Contributor
Wenn die Oberklasse keinen default-Konstruktor hat

[klugs******mode]
Womit gemeint ist: Wenn die Oberklasse keinen Konstruktor ohne Parameter hat. Ja, der Default-Konstruktor ist ein Konstruktor ohne Parameter, aber andersherum ist ein explizit geschriebener Konstruktor ohne Parameter kein Default-Konstruktor - selbst dann nicht, wenn er tatsächlich keine Anweisungen in seinem Rumpf hat. (Ist ne Sache der Terminologie)
[/klugs******mode]

XHelp, dieser Post soll dich nicht zurecht weisen, sondern verhindern dass der TO vllt glaubt dass er in der Kindklasse generell einen eigenen Konstruktor schreiben muss, wenn er in der Oberklasse einen definiert hat (der halt dann vllt gar keinen Parameter hat). Mir ist klar, dass du das weißt ;)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
P Netbeans installation geht nicht Java Basics - Anfänger-Themen 26
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
P Installation JRE 8u321 startet, geht aber nicht weiter Java Basics - Anfänger-Themen 1
E Pervasive PSQL insert funktion geht nicht Java Basics - Anfänger-Themen 9
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
melisax Lower & Uppercase Beispielprogramm geht nicht Java Basics - Anfänger-Themen 3
N methodenaufruf for each geht nicht Java Basics - Anfänger-Themen 2
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
CptK Klassen KeyListner geht nicht Java Basics - Anfänger-Themen 7
L Klassen Objekt aus einer Warteschlange in eine andere übergeben, geht nicht? Java Basics - Anfänger-Themen 6
K Armstrong Programm geht nur bis 1000, aber nicht weiter Java Basics - Anfänger-Themen 2
amazinglife77 Input/Output Lesen/Schreiben Properties: in eclipse geht, als JAR nicht Java Basics - Anfänger-Themen 4
V Erste Schritte Warum geht meine continue Anweisung nicht? Java Basics - Anfänger-Themen 8
MR._FIRE_Flower String.split("(") geht nicht Java Basics - Anfänger-Themen 4
M Restbuchwert Berechnung geht nicht Java Basics - Anfänger-Themen 45
S int addieren geht nicht Java Basics - Anfänger-Themen 13
L system.print.out geht nicht Java Basics - Anfänger-Themen 11
M Arrays einspeichern geht nicht Java Basics - Anfänger-Themen 21
I erstelle Vorschaubild mit der lib PDF-Renderer und möchte danach Dateiname ändern -> geht aber nicht Java Basics - Anfänger-Themen 0
J Ausführen geht nicht Java Basics - Anfänger-Themen 19
G System.out.printf geht nicht Java Basics - Anfänger-Themen 6
E Erste Schritte [Noob] Warum geht meine For-Schleife nicht? Java Basics - Anfänger-Themen 2
S Button "Berechnen" geht nicht Java Basics - Anfänger-Themen 3
K JUnit: Objekte von eigenen Klassen vergleichen...geht nicht Java Basics - Anfänger-Themen 5
T fianl array geht nicht... Java Basics - Anfänger-Themen 2
D Java geht auf windows 64 bit nicht. Java Basics - Anfänger-Themen 5
T sample.war geht nicht... Java Basics - Anfänger-Themen 1
C Datentypumwandlung geht nicht Java Basics - Anfänger-Themen 5
U kompilieren geht nicht wg. Formatierung wahrscheinlich Java Basics - Anfänger-Themen 7
G While schleife mit 2 Bedingungen geht nicht! Java Basics - Anfänger-Themen 15
O Jar Datei erstellen geht nicht. Java Basics - Anfänger-Themen 4
O (.+?) --> $1 geht nicht Java Basics - Anfänger-Themen 5
V relativer Pfad geht nicht, absolut schon? Java Basics - Anfänger-Themen 3
R Java JDK/ Kompiler geht nicht Java Basics - Anfänger-Themen 4
J Warum geht int und String nicht? Java Basics - Anfänger-Themen 18
J repaint() geht gar nicht; GUI aktualisieren Java Basics - Anfänger-Themen 10
N ArrayList geht nicht Java Basics - Anfänger-Themen 8
R Einfacher Timer geht nicht Java Basics - Anfänger-Themen 7
D Compiler-Fehler ANT-Script geht nicht Java Basics - Anfänger-Themen 6
A Android Datenbank gaaanz einfaches Insert geht nicht - warum? Java Basics - Anfänger-Themen 4
N JAVA Installation - Umgebungsvariable geht nicht. Java Basics - Anfänger-Themen 3
K Aus JFrame-Fenster SuM-Fenster öffnen geht nicht! Java Basics - Anfänger-Themen 8
K Erste Schritte Progressbar geht nicht Java Basics - Anfänger-Themen 5
H Ein alternativer Konstruktor geht nicht Java Basics - Anfänger-Themen 3
P quickSort eines Objekt-Arrays geht nicht! Java Basics - Anfänger-Themen 11
M if then else geht nicht Java Basics - Anfänger-Themen 10
N Methoden mehrere replace hintereinander geht nicht ? Java Basics - Anfänger-Themen 2
Maxim6394 KeyListener geht nicht Java Basics - Anfänger-Themen 15
C Erste Schritte switch Anweisung geht nicht Java Basics - Anfänger-Themen 3
Z Anfügen an Arraylist geht nicht Java Basics - Anfänger-Themen 3
M Unterverzeichnisse löschen geht nicht. Java Basics - Anfänger-Themen 3
M If Abfrage geht nicht Java Basics - Anfänger-Themen 2
0 file.delete() geht nicht Java Basics - Anfänger-Themen 23
0 String split und replace geht nicht Java Basics - Anfänger-Themen 17
A String-Vergleich geht nicht Java Basics - Anfänger-Themen 2
K Int nach String geht nicht Oo Java Basics - Anfänger-Themen 13
K Code geht nicht Java Basics - Anfänger-Themen 6
F Spiel geht nicht mehr nach neuer Klasse Sound Java Basics - Anfänger-Themen 18
A for Geht nicht richtig ? Java Basics - Anfänger-Themen 10
Y Bild mit poi in PPT einbinden - geht nicht Java Basics - Anfänger-Themen 4
O Integer in File mit Filewriter schreiben - geht nicht richtig Java Basics - Anfänger-Themen 4
pindakaas Compiler geht nicht (Dekorator Muster) Java Basics - Anfänger-Themen 18
N OOP Kollisionserkennung geht nicht 100% Java Basics - Anfänger-Themen 11
A javac geht, java nicht ? Java Basics - Anfänger-Themen 20
O Will ein Jar-Archive machen mit FAT JAR - geht nicht ! Java Basics - Anfänger-Themen 2
Burny91 File.delete(file) geht nicht-Offener Stream aber WO? Java Basics - Anfänger-Themen 4
N JScrollPane repaint(); geht nicht Java Basics - Anfänger-Themen 4
L Programm zur Halbierung eingegbener Zahl geht nicht. Java Basics - Anfänger-Themen 7
J Escape taste geht ohne cursor im textfeld nicht. Java Basics - Anfänger-Themen 4
L Javac geht nicht Java Basics - Anfänger-Themen 17
I Runden / Zweikommastellen geht nicht... Java Basics - Anfänger-Themen 3
T compareTo warum geht es nicht? Java Basics - Anfänger-Themen 2
D String.split(".") geht nicht? Java Basics - Anfänger-Themen 3
J Weshalb zum Geier geht die Funktion nicht? Java Basics - Anfänger-Themen 2
H TreeMap.remove(value) - und nicht mit key! Geht das? Java Basics - Anfänger-Themen 18
L longwert mit Methode addieren geht nicht! Java Basics - Anfänger-Themen 20
X Robot geht nicht mehr (Ubuntu 9.10) Java Basics - Anfänger-Themen 2
T setContentPane() geht nicht Java Basics - Anfänger-Themen 6
V If - Abfrage geht nicht -> Warum ? :) Java Basics - Anfänger-Themen 17
S instanceof Comparable...geht nicht? Java Basics - Anfänger-Themen 20
S Grafischer Taschenrechner geht nicht :-( Java Basics - Anfänger-Themen 19
S Accordeon bei Webseite geht bei Ie8 nicht Java Basics - Anfänger-Themen 2
JFeel-x renameTo windows XP geht gar nicht? Java Basics - Anfänger-Themen 5
R Regulären Ausdruck geht nicht Java Basics - Anfänger-Themen 2
R JApplet geht in Eclipse, nicht aber im Browser Java Basics - Anfänger-Themen 2
T Mehr Anfänger geht nicht - Wie bekomme ich das zum laufen! Java Basics - Anfänger-Themen 6
E Code kompilieren geht aber ausführen nicht Java Basics - Anfänger-Themen 3
L Regex geht nicht. Java Basics - Anfänger-Themen 2
L Sortieren geht nicht Java Basics - Anfänger-Themen 4
M Aufruf von jar geht nicht Java Basics - Anfänger-Themen 2
hdi HTML code geht nicht bei JEditorPane Java Basics - Anfänger-Themen 5
P Java Ticker auf HP geht nicht. Java Basics - Anfänger-Themen 2
F JSF mit CSS verbinden // geht nicht ? Java Basics - Anfänger-Themen 3
B ItemListener - setText Befehl geht nicht Java Basics - Anfänger-Themen 3
M java Programmname, mal geht es mal nicht Java Basics - Anfänger-Themen 3
M UIManager und JSpinner geht nicht? Java Basics - Anfänger-Themen 2
C Datum prüfung geht nicht? Java Basics - Anfänger-Themen 9
G Poi Api geht nicht Java Basics - Anfänger-Themen 2
M wait() sleep() geht nicht wirklich Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben