Main vererbung per extend funktioniert nicht

MaNiii

Neues Mitglied
Hallo,

Bin ein Anfänger in Sachen Java, habe mir zum Teil ein paar Tutorials reingezogen aber komme bei dem Problem nicht weiter.

Undzwar geht es darum, dass ich aus meiner public static void main eine Eingabe einlesen möchte und diese in einer anderern Klasse wieder auslesen möchte, dies geht aber nicht

Der Sourcecode sieht ca so aus
Java:
public class X {

public static void main(String[] args) {
 
        
        int anzahl = Integer.valueOf(args[0]).intValue();

}

Meine 2. Klasse sieht folgendermaßen aus:

Java:
public class Y extends X {

System.out.println(anzahl)

Nun sagt mir Netbeans bei der Klasse Y den Fehler, dass er die Variable anzahl nicht finden kann.
Meiner Ansicht nach liegt es daran, dass ich eine statische Variable an eine nicht statische Klasse vererben will oder nicht? Wie könnte ich aus der public static void eine Variable an eine anderer Klasse vererben?

Danke
lg
 
ohne jetzt deinen post gelesen zu haben

1) SCOPE : int anzahl ist nur innerhalb von main() sichtbar und kann daher garnicht vererbt werden
2) CALLs : dein Sysout muss innerhalb einer methode stehen welche dann auch mal irgendwo gecallt wird ... einfach einen Sysout sinnlos in eine Klasse werfen geht nicht und führt zu Compiler-Fehlern ...


lern dir grundlagen : google > "Java ist auch eine Insel"
 
Zusätzlich von dem was troll geschrieben hat solltest du dir auch allgemeine OOP-Grundlagen nachholen, Material dazu findest du hier: Galileo Computing :: Objektorientierte Programmierung - Das umfassende Handbuch

Deine Klasse X hätte in deinem Programm folgende Aufgabe: Einlesen einer Zahl.
Deine Klasse Y hat folgende Aufgabe: Ausgabe einer Zahl.

Vererbung sollte aber immer eine "ist ein" oder "verhält sich wie" beschreiben,
ein BMW "ist ein" Auto, ein 15-Zoll-LCD "verhält sich wie" ein Monitor.
Eine Ausgabe ist aber keine Eingabe und eine Ausgabe verhält sich nicht wie eine Ausgabe.

Möglich wäre aber so etwas:
Java:
public class X {
 
public static void main(String[] args) {
 
        //parseInt liefert dir direkt einen int
        int anzahl = Integer.parseInt(args[0]);
        Y ausgabeInstanz = new Y(anzahl);
        ausgabeInstanz.print();
 
}

und Y dann so:

Java:
public class Y{

private int value;

public Y(int value){
this.value = value;
}

public void print(){
System.out.println(value);
}
}


(Wie sinnvoll so etwas ist sei mal dahingestellt, aber so bekommst du zumindest die Variable in eine andere Klasse (hier per Konstruktor - falls unklar ebenfalls googlen).

Übrigens hat Vererbung keinerlei Einfluss auf static-Methoden. Alles was static ist wird fest an die Klasse gebunden.

Gruß
 

Zurück
Oben