Grundsatzfragen Verschiedenes

melmager

Erfahrenes Mitglied
Ich weiss dummer Toppic aber was besseres viel mir nicht ein.
Ich bin immer noch am Anfänger im Javabereich und im Moment ist meiner Abneigung einer
Skepsis gewichen :) (aber das ist ein andres Thema)

A) Mehfachvererbung - da wurde bei meiner letzen Lästerrunde zum Thema Java gesagt das geht
mit Interface - Scheint aber nicht so zu sein oder ? Im Interface Declaration kann ich doch kein Code für die Functionen schreiben. Der Code muss dann in der Classe die das Interface benutzt
gemacht werden. Ist das soweit richtig?
und noch ein paar Verständnisfragen:
Aa) Kann ein Interface von einer Classe was erben ? Ab) oder kann ein interface was von einem anderen Interface erben?

B) Mehr Rückgabewerte bei einer Function - wie geht das ? (wenn überhaupt)
Ba) kann ich z.b eine Classe zur Not als Rückgabewert machen ?
Bb) Oder ist es möglich einer Fuction die Adresse eines Wertes zu übergeben statt einer Kopie
des Wertes um so den Übergabewert zu verändern.

C) Recursion sollte doch ohne Probleme gehen? Sowohl eine Fuction die sich selbst aufruft wie auch ne classe die sich selbst aufruft.

D)wie stelle ich fest welche Classe aufgerufen hat ?

E)ist es möglich Classen abhängig vom Betriebssystem aufzurufen ? oder doch mehrere Versionen
vom Programm schreiben ?

F)Gibt es ausser Sockets andre Möglichkeiten damit sich 2 Javaprogramme unterhalten können?

G)ein gutes Tut zu Eclipse (mein Help in Eclipse mag nicht arbeiten)

PS ja ich kenne Googel :)
 
Zuletzt bearbeitet:
A) Mehrfachvererbung gibt es nicht direkt, da eine Klasse immer nur von einer Superklasse abgeleitet werden kann. Als Ausweg bieten sich da die Interfaces an, die aber im Grunde keinen eigenen Code zur Verfügung stellen, sondern durch die Kindklasse implementiert werden müssen.
Aa) Natürlich kann ein Interface von einer Klasse abgeleitet werden, nur darf innerhalb des Interfaces keine der geerbten Methoden überschrieben werden.

B) Zwei Möglichkeit wäre beispielsweise ein Array (bei mehreren Werten des gleichen Datentyps) oder ein anderes Listenobjekt (ArrayList, Hashtable, etc. bei verschiedenen Datentypen).
Ba) Wie meinst Du das?
Bb) Falls Du der Methode einen Pointer übergeben willst, kannst Du das vergessen, weil es in Java keine Pointer gibt. Alle Objekte und Variablen, die an eine Methode übergeben werden stellen aber sowieso nur Referenzen dar, soweit ich weiss.

E) Klar, das Betriebssystem, auf dem die VM läuft kannst Du über die System-Klasse auslesen und dann entsprechend darauf reagieren.

G) Tut's auch ein Buch? http://www.amazon.de/exec/obidos/AS...r=2-5/ref=sr_aps_prod_5_2/028-4083010-7849344
Ich hab zwar noch keinen Blick reinwerfen können, weil Christian das letzte Exemplar davon in dem Laden vor meiner Nase weggekauft hat, aber vielleicht kann er Dir zu dem Buch etwas genaueres sagen.

Zu den anderen Fragen fällt mir so spontan nichts ein, weil ich auf diesem Rechner kein Java installiert hab.
 
Hallo!

Zu A)Stmmt so

Zu Aa) & Ab) Ein Interface kann nur von einem anderen Interface erben (extends)

A und B sind Interfaces

Was nicht geht!
Code:
public interface B implements A{
...

Was geht:

Code:
public interface B extends A{
...

Zu B) Stimmt so

Zu Ba) wenn du in deiner Methode eine eine Ausnahme erzeugst könntest du beispielsweise "zur Not " in der catch-Klausel irgend einen Defaultrückgabewert
mit return zurückgeben.

Zu Bb)

Siehe Beispiel:

Code:
public class A {

	StringBuffer sb;
	
	public A() {
		sb = new StringBuffer("Test1");
	}

	public static void main(String[] args) {
		A a = new A();
		System.out.println(a.sb);
		a.testMethod(a.sb);
		System.out.println(a.sb);
	}
	
	public void testMethod(StringBuffer sbuf){
		sbuf.append("Hallo");
	}
}

Zu C) Ja, Java läst rekursionen zu.

Zu D) Im Debug View von Eclipse einfach Schritt für Schritt das Programm ausführen ... dann siehst du in der Aufrufhierarchie welche Klasse in welchem Thread deine Methode aufgerufen hat ...

Zu E) Stimmt und zwar mit System.getProperty("os.name");

Zu F) Zwei Javaprogramme könnten Daten gemeinsam über eine Kommunikationsdatei austauschen, was aber bestimmt recht mühsam sein würde. Sonst verwenden alle Wege zur Kommunikation zwischen 2 Java Programmen in 2 unterschiedlichen VM's Sockets .... RMI (Remote Method Invocation) , Corba, Webservices, Datenbank, etc.

Zu G)
http://www.eclipse.org/articles/index.html
http://www.eclipse.org/newsgroups/index.html

Gruß Tom
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück