Kenn mich nicht aus :/

Status
Nicht offen für weitere Antworten.
V

Vererbung....

Gast
Hallo,

In Programmieren haben wir mit Vererbung angefangen,

da ich an dem Tag gefehlt habe, versteh das irgendwie nicht.

z.B. super, was kann man damit machen?

Bitte um ein code-Beispiel und Erläuterung^^

mfg
 

Strahlungsleck

Aktives Mitglied
Vererbung, versteht man das eine Unterklasse von der Oberklasse erbt,
also alle Variablen etc hat.

z.B. hier
Da erbt die Klasse Employe von der Klasse Personen,
das heißt das die Klasse Employe nun alle Variablen Methoden etc. der Klasse
Person hat:
String name;
double phonenumber;
String eMail;


gekennzeichnet wird das mit extend Klassennamen von den geerbt werden soll




Code:
package phoneSimulation;

public class Person {

	String name;
	double phonenumber;
	String eMail;

	public Person(String name, double phonenumber, String mail) {
		this.name = name;
		this.phonenumber = phonenumber;
		this.eMail = mail;
	}

	public Person() {
		name = "leer";
		phonenumber = 123456;
		eMail = "leer@leer.de";
	}

	// Methode zum anrufen
	public String call(Person angerufender)
			throws SelfCallException, StudentCallsTechException, ScientistCallsStudentException {
		return "Hello " + angerufender.getName();
	}

	// Methode zum annehmen von anrufen
	public String receiveCall(Person angerufender) {
		return "Hello " 
//		+ anrufender.getName() 
		+ "you are calling"
				+ angerufender.getName();
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public double getPhonenumber() {
		return phonenumber;
	}

	public void setPhonenumber(double phonenumber) {
		this.phonenumber = phonenumber;
	}

	public String getEMail() {
		return eMail;
	}

	public void setEMail(String mail) {
		eMail = mail;
	}
	public String toString() {
		return name + phonenumber + eMail;
	}
}
Code:
package phoneSimulation;

public class Employe extends Person {

	String costCenter;

	public Employe(String name, int phonenumber, String mail, String costCenter) {
		this.name = name;
		this.phonenumber = phonenumber;
		this.eMail = mail;
		this.costCenter = costCenter;
	}

	public Employe() {
		name = "Employe";
		phonenumber = 333333;
		eMail = "Employe@Employe.de";
		costCenter = "MOEP";

	}

	// Methode zum anrufen
	public String call(Person angerufender) throws SelfCallException,
			ScientistCallsStudentException {
		return "Hello " + angerufender.getName() + "you are calling "
				+ angerufender.getName() + getCostCenter();

	}

	public String getCostCenter() {
		return costCenter;
	}

	public void setCostCenter(String costCenter) {
		this.costCenter = costCenter;
	}

	public String toString() {
		return name + phonenumber + eMail;
	}
}

Mann kann auch statt wie hier in der Employe Klasse gemacht habe:
Code:
	public Employe(String name, int phonenumber, String mail, String costCenter) {
		this.name = name;
		this.phonenumber = phonenumber;
		this.eMail = mail;
		this.costCenter = costCenter;
	}
Ganz einfach mit folgenden Befehl aufrufen, wenn ich mich nicht Irre!
Code:
	public Employe() {
		super();
	}
[/b]
 
V

Vererbung....

Gast
Genau und das verstehe ich nicht....

mit super() werden die Parameter des Konstruktors den Attributen überwiesen?
 

Strahlungsleck

Aktives Mitglied
Code:
public Employe(String name, int phonenumber, String mail, String costCenter) {
      this.name = name;
      this.phonenumber = phonenumber;
      this.eMail = mail;
      this.costCenter = costCenter;
   }

Der oben gepostete Quelltext
macht das gleiche wie

Code:
pblich Employe(){
super();
}
 
V

Vererbung....

Gast
Ja aber wie kommt er drauf?
Vergleicht er die Namen oder wie?
 

Strahlungsleck

Aktives Mitglied
Du sagst ja ganz oben im Code:

public class Employe extends Person

Die Klasse Employe erbt alle Variablen Methoden etc. von ihrer Mutterklasse Person und verwendet in ihrem eigenen Konstruktor den Konstruktor ihrer Elternklasse.

Steht aber auch alles in den Links die Hobbit_Im_Blutrausch
gepostet hat !
 
S

SlaterB

Gast
ich versteh auch nicht ganz, was Strahlungsleck damit meint,
beide Employe-Konstruktoren rufen super() auf, also wird

public Person() {
name = "leer";
phonenumber = 123456;
eMail = "leer@leer.de";
}

in beiden Fällen ausgeführt, aber die Parameter werden nicht auf magische Weise irgendwohin rumgeschubst
 

Strahlungsleck

Aktives Mitglied
SlaterB hat gesagt.:
ich versteh auch nicht ganz, was Strahlungsleck damit meint,
beide Employe-Konstruktoren rufen super() auf, also wird

public Person() {
name = "leer";
phonenumber = 123456;
eMail = "leer@leer.de";
}

in beiden Fällen ausgeführt, aber die Parameter werden nicht auf magische Weise irgendwohin rumgeschubst

Damit war gemeint, das beide Code aufrufe eigentlich das selbe machen....
 
S

SlaterB

Gast
wie kann ein Konstruktor, der keinen Parameter erhält, und der Person den Namen "leer" gibt,
dasselbe machen wie ein Konstruktor, der einen Parameter name mit Wert z.B. 'Klaus Klebe' erhält und mehr oder weniger korrekt abspeichert?

da müssten wie 'dasselbe' näher definieren ;)

aber ok, beide erstellen Personen bzw. Employes und kümmern sich um Namen usw.
 

Strahlungsleck

Aktives Mitglied
SlaterB hat gesagt.:
wie kann ein Konstruktor, der keinen Parameter erhält, und der Person den Namen "leer" gibt,
dasselbe machen wie ein Konstruktor, der einen Parameter name mit Wert z.B. 'Klaus Klebe' erhält und mehr oder weniger korrekt abspeichert?

da müssten wie 'dasselbe' näher definieren ;)

aber ok, beide erstellen Personen bzw. Employes und kümmern sich um Namen usw.

Das war nur zur Initialisierung mit testwerten um nacher in der Mainklasse zu schauen, ob es
da irgendwelche Fehler gibt bzw. besser nachzuvollziehen wo was nicht gemacht wird, anstatt gleich
da schon richtige Namen/Werte zuzuweisen !
Hier:

Code:
package phoneSimulation;

import phoneSimulation.Scientist.ResearchArea;
import phoneSimulation.Technician.Expertise;

public class Test_Klasse {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		Person[] liste = new Person[9];

		Student studi1 = new Student("studi1", 5551, "studi1@student.de", 5551);
		Student studi2 = new Student("studi2", 5552, "studi2@student.de", 5552);
		Student studi3 = new Student("studi3", 5553, "studi3@student.de", 5553);
		Scientist sci1 = new Scientist("sci1", 0001, "sci1@Scientist.de",
				ResearchArea.Physics);
		Scientist sci2 = new Scientist("sci2", 0002, "sci2@Scientist.de",
				ResearchArea.Computerscience);
		Scientist sci3 = new Scientist("sci3", 0003, "sci3@Scientist.de",
				ResearchArea.Mathematics);
		Technician tech1 = new Technician("tech1", 3331, "tech1@Techncian.de",
				Expertise.Workstation);
		Technician tech2 = new Technician("tech2", 3332, "tech2@Techncian.de",
				Expertise.Server);
		Technician tech3 = new Technician("tech3", 3333, "tech3@Techncian.de",
				Expertise.Networks);

		liste[0] = studi1;
		liste[1] = studi2;
		liste[2] = studi3;
		liste[3] = sci1;
		liste[4] = sci2;
		liste[5] = sci3;
		liste[6] = tech1;
		liste[7] = tech2;
		liste[8] = tech3;

		// System.out.println(studi1);
		// System.out.println(studi2);
		// System.out.println(studi3);
		// System.out.println("-----");
		// System.out.println(sci1);
		// System.out.println(sci2);
		// System.out.println(sci3);
		// System.out.println("-----");
		// System.out.println(tech1);
		// System.out.println(tech2);
		// System.out.println(tech3);
		// System.out.println("-----");

		try {

			/**
			 * 1. Exception (Wissenschaftler darf keinen Studenten anrufen !
			 * Funktioniert!
			 */
			 System.out.println(sci1.call(studi2));
			 System.out.println("-------");
			
			/**
			 * 2. Exception(Student darf keinen Techniker
			 * anrufen ! Funktioniert!
			 */
			System.out.println(studi1.call(tech2));
			System.out.println("-------");
			
			/**
			 * 3. Exception man darf/soll sich nicht selber anrufen!!
			 * Funktioniert !!!
			 */
			 System.out.println(studi2.call(studi2));
			 System.out.println("-------");

		}
		 catch (ScientistCallsStudentException e) {
		 // TODO Auto-generated catch block
		 e.printStackTrace();
		 }
		catch (StudentCallsTechException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SelfCallException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Ich kenn mich nicht mehr aus - 'java.lang.NoSuchMethodError: main' in Applet? Java Basics - Anfänger-Themen 2
H Generics machen mich verrückt Java Basics - Anfänger-Themen 8
R Ist Java das Richtige für mich? Java Basics - Anfänger-Themen 4
S Fehler bei Code mit SubStrings für mich nicht auffindbar. Java Basics - Anfänger-Themen 4
R getUserProperties() macht für mich keinen Sinn Java Basics - Anfänger-Themen 8
C Der Swing Layout-Manager hasst mich Java Basics - Anfänger-Themen 4
B Boolscher Ausdruck für mich unverständlich Java Basics - Anfänger-Themen 7
E Erste Schritte Vorschläge für mich zum Thema Punkt vor Strich ? Java Basics - Anfänger-Themen 7
N Einfacher Rechner (für mich nicht so einfach) Java Basics - Anfänger-Themen 5
V Interface ich schäme mich das zu fragen, aber ich schaff nicht ein Text zu zentrieren :( [javaFX] Java Basics - Anfänger-Themen 6
H mysql brauche hilfe, wer kann eine (längere) aufgabe für mich erledigen Java Basics - Anfänger-Themen 2
X Ist Java für mich das richtige? Java Basics - Anfänger-Themen 10
E Variablen "If" verschaukelt mich :( Java Basics - Anfänger-Themen 8
F Für mich unverständlicher Fehler Java Basics - Anfänger-Themen 2
D Arrays mögen mich nicht :( Java Basics - Anfänger-Themen 5
M true und false treiben mich ins Grab! Java Basics - Anfänger-Themen 5
N Flaggenaufgabe, für mich zu schwierig Java Basics - Anfänger-Themen 19
A Möchte mich vorstellen Java Basics - Anfänger-Themen 24
C abstrakte Klassen mögen mich nicht... Java Basics - Anfänger-Themen 2
M Hilfe Selenium ärgert mich Java Basics - Anfänger-Themen 2
S if-Abfragen bringen mich zum VERZWEIFELN! Java Basics - Anfänger-Themen 12
B Ist Java das richtige für mich? Java Basics - Anfänger-Themen 12
M Caeser Verschlüsselung ganz einfach(nicht für mich) Java Basics - Anfänger-Themen 6
U Uni-Code nervt mich Java Basics - Anfänger-Themen 13
S Unlösbar für mich? Java Basics - Anfänger-Themen 5
B eine billige frage, für mich leider jedoch nicht Java Basics - Anfänger-Themen 16
P Schreibweise erklären- neu für mich Java Basics - Anfänger-Themen 3
P Clone Methode treibt mich zum Wahnsinn Java Basics - Anfänger-Themen 10
M GregorianCalendar bringt mich um. Java Basics - Anfänger-Themen 8
I Webservice funktioniert nicht Java Basics - Anfänger-Themen 5
C Abbruch einer Schleife mit break, meine Übung funktioniert nicht richtig Java Basics - Anfänger-Themen 4
SarahXyy Ergebnisse stimmen nicht überein? Java Basics - Anfänger-Themen 11
thomas55 Erste Schritte Modul läuft in IntelliJ, nicht in NetBeans Java Basics - Anfänger-Themen 11
richis-fragen Nicht ausführbares JAR, externe jars mit einbinden Java Basics - Anfänger-Themen 7
S Erstes Programm: Hallo Welt funktioniert nicht. Java Basics - Anfänger-Themen 3
O Obfuscateter Code lässt sich nicht ausführen? Java Basics - Anfänger-Themen 7
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
D Regex greift nicht richtig Java Basics - Anfänger-Themen 4
richis-fragen JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
richis-fragen JTable Header ausgeblendete (width = 0) nicht per mouseDragged aufziehen. Java Basics - Anfänger-Themen 9
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
S Wie debugge ich dies am besten: SingleThreadExecutor führt Task nicht aus..? Java Basics - Anfänger-Themen 29
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
K Verstehe Rekursion nicht ganz Java Basics - Anfänger-Themen 7
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
K TicTacToe belegtes feld nicht neu besetzbar Java Basics - Anfänger-Themen 1
K TicTacToe belegtes Feld nicht neu besetzbar Java Basics - Anfänger-Themen 3
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
G Mit jPackage erstellte EXE funktioniert nicht Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
missy72 Erste Schritte (nicht) Deterministischer endlicher Automat Java Basics - Anfänger-Themen 9
T Getter/Setter - wie sieht ein Setter aus? Und wie nicht? Java Basics - Anfänger-Themen 34
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
P Netbeans installation geht nicht Java Basics - Anfänger-Themen 26
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
T HashMap Lsite gibt die sachen nicht aus wie gewollt. Java Basics - Anfänger-Themen 3
H Counter durch gepresste Taste nur auf 1 erhöhen und nicht durchzählen lassen Java Basics - Anfänger-Themen 7
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
T scanner nicht erkannt Java Basics - Anfänger-Themen 3
monsterherz Punkt Notation funktioniert nicht Java Basics - Anfänger-Themen 4
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
D Jar Datei startet unter Linux nicht Java Basics - Anfänger-Themen 3
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
Darkherobrine9 Import klappt nicht Java Basics - Anfänger-Themen 7
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
_so_far_away_ Inventarisierungssystem brauche switch Cases und weiß nicht, wie ich e implementieren muss Java Basics - Anfänger-Themen 5
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
C Kann mir jemand sagen warum ich nicht mal rechnen kann ? Java Basics - Anfänger-Themen 32
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
A JavaFX-Anwendung läuft nicht mit Selenium WebDriver Java Basics - Anfänger-Themen 0

Ähnliche Java Themen

Neue Themen


Oben