Oop

Ich beginne gerade mich in die Objektorientierte Programmierung einzuarbeiten, und habe ua. deswegen mit Java begonnen. Bis jetzt habe ich nur simple Konsolenausgaben erstellt, möchte aber einmal von den echten Vorteilen der OOP in einer praktischen Anwendung gebrauch machen.
Kann mir wer eine kleine Aufgabenstellung geben um erstmal mein hheoretisches Wissen in der Praxis anwenden kann? :slight_smile:
Thx, im Voraus :smiley:

hmm probiere dich an grafischer Programmierung weil da ist viel OOP dabei und dann haste auch schneller Übungen, z.b. kannste da kleine Tools schreiben wie Taschenrechner oder andere kleine Teile

Kann dir auch das empfehlen was dir Eagle empfohlen hat. Ich habe auch vor kurzem erst damit angefangen. Ich kann dir aber eine Aufgabe für Kosole geben(OOP).

Programm Kontoführung.
Erstelle eine Superklasse und definiere dort paar Methoden und Eigenschaften. Leite von dieser Superklasse paar neue Klassen ab und definiere dort auch paar neue Methoden und Eigenschaften.
Z.B. Superklasse Person. Abgeleitete Klassen Mitarbeiter, Kunden, Boss. Mainklasse - wo z.b man bestimmte Methoden wie Kontostand etc abfragen kannst.

Viel Spass :stuck_out_tongue_winking_eye:

finde swerflashs Idee gut… eine kleine Firma mal programmieren.

Mitarbeiter / angestellte / Chefs. Einkauf/ Verkauf / Gewinn usw.

kann man nette sachen machen

Vielen Dank für eure prompten Antworten! :slight_smile:
Ich werde mich so bald es geht daran versuchen, ich werd mich dann mal melden wenn ichs net schaffen sollte :smiley:

viel erfolg und spass…

und einfach melden… irgendein freak wird hier schon rumsitzen und moechtegern schlaue antworten geben :smiley:

[QUOTE=deathbyaclown]viel erfolg und spass…

und einfach melden… irgendein freak wird hier schon rumsitzen und moechtegern schlaue antworten geben :D[/QUOTE]

O.o Wie Freaks? :smiley:

6.03 hust :smiley:

joa da war gerade das Forumupdate fertig :wink:

Sodala, ich hab jetzt mal mit eine OOP-Projekt begonnen. Ich habs mal bei einer simplen Funktion belassen, in der die Chef-Klasse eine Person einstellt und schließlich als String ausgibt:

	String werBinIch() {
		return "Christoph";
	}
	
	String Abteilung(String Mitarbeiter) {
		Chef Boss = new Chef();
		return Boss.Verkuende(Mitarbeiter, "Marketing");
	}
}

class Chef {
	String einstellenMitarbeiter(String Mitarbeiter) {
		Person person01 = new Person();
		return person01.Abteilung(Mitarbeiter);
	}
	
	String Verkuende(String a, String b) {
		return "Mein Name ist "+a+" und ich bin im "+b+" taetig!";
	}
}

public class Arbeit {
	public static void main(String[] args) {
		Person person01 = new Person();
		Chef Boss = new Chef();
		System.out.print(Boss.einstellenMitarbeiter(person01.werBinIch()));
	}
}```


Im Endeffekt wird der String **Mein Name ist Christoph und ich bin im Marketing taetig!** ausgegeben.
Jetzt meine Frage an euch: Entspricht das hier überhaupt schon (zumindest ansatzweise) dem Prinzip der Objektorientierung?
Für mich ist das noch absolutes Neuland, ich muss diese Art der Logik erst begreifen! :p

naja vom prinzip her schon aber die Umsetzung ist nich so gut

hier mal eine kleine Ausarbeitung von deinem

public class Person {
  private String name;
  public Person(String name){
    this.name = name;
  }
    String werBinIch() {
        return name;
    }
}
public class Chef extends Mitarbeiter {
  public Chef(String name)
    super(name);
   }
//weiß jetzt nicht was man noch reinschreiben kann
}
public class Abteilung{
  private Chef chef;
  private Vector mitarbeiter = new Vector();
  
 pulic void setChef(Chef chef){
  this.chef = chef;
 }
 public void addMitarbeiter(Mitarbeiter mit){
  mitarbeiter.add(mit);
 }
 public void print(){
  System.out.println("Chef"+chef.werBinIch());
  for(int i=0;i!=mitarbeiter.size();i++)
   System.out.println("Mitarbeiter "+i+": "+((Mitarbeiter)mitarbeiter.get(i)).werBinIch());
 }
}
public class Arbeit {
    public static void main(String[] args) {
       Abteiung ab = new Abteilung();
       ab.setChef(new Chef("ich"));
       ab.addMitarbeiter(new Mitarbeiter("du"));
       ab.addMitarbeiter(new Mitarbeiter("1"));
       ab.addMitarbeiter(new Mitarbeiter("2"));
       ab.addMitarbeiter(new Mitarbeiter("3"));
       ab.print();
    }
}

danke für die prompte antwort!

ähm, muss ich mich da jetzt sofort auskennen ?_?
irgendwie zeigt mir mein eclipse an ungefähr 10 stellen fehler an o.O

was macht dieses script jetzt eigentlich?

nein musste nicht gleich auskennen.
kleiner Tipp das ist kein Script sondern sind Klassen :wink:
und Eclipse wird meckern weil man kann nur eine public class in einer Datei haben, d.h. du musst dann mehere Dateien nehmen oder die public rausnehmen

:stuck_out_tongue: Bei Dingen wie:
pulic void setChef(Chef chef)

oder

Abteiung ab = new Abteilung();

darf der Compiler schon meckern, gell Eagle?:stuck_out_tongue_winking_eye: :smiley:

Und das:
public static void main(String[] args)
ist einfach nur ein Problem mit dem Syntaxhighlighting/Codierung. Das wird sicher noch behoben.

[QUOTE=L-ectron-X]:stuck_out_tongue: Bei Dingen wie:
pulic void setChef(Chef chef)

oder

Abteiung ab = new Abteilung();

darf der Compiler schon meckern, gell Eagle?:stuck_out_tongue_winking_eye: :smiley:
[/QUOTE]
Verteh ich nicht bin ich wohl noch nicht wach genug dafür :wink: wo isn da der Fehler?

Und das:
public static void main(String[] args)
ist einfach nur ein Problem mit dem Syntaxhighlighting/Codierung. Das wird sicher noch behoben.

ja daran arbeiten wir noch deshalb ging Gestern auf einmla nichtsmehr :smiley:

probiers aus… als tipp: nimm n Duden und englisch woerterbuch in die Hand :smiley:

Java kennt keine pulic oder Abteiung gibt es dort nicht …

zum thema

OOP zeichnet sich unter anderem durch das wiederverwenden vorhandene Strukturen aus. In dem Fall von Java ist das die Vererbung. D.h. man sucht nach gleichen Eigenschaften oder Aktionen von Objekten und versucht diese zusammenzufuehren in einer Oberklasse

In deinem Fall hat man Personen. Diese koennen normale Angestellte sein oder der Chef. Beide haben gleiche Eigenschaften (Namen z.b.), aber auch Unterschiede.

Die gemeinsamkeiten gehoeren in die Oberklasse (Person). Die Unterklassen (Angestellter / Chef) erben davon und fuegen neue Funktionalitaeten hinzu.

Als Tipp: Nimm dir ein gutes Buch in die Hand und fange an dort zu lesen - die meisten Anfaengerbuecher haben gute und einfache Bsp fuer programmierung.
Hier das komplette OOP mit Vererbung usw zu erklaeren waere unsinnig

Viel spass :slight_smile:

ups :smiley:
ja ich sagte doch ist noch so früh :wink:

so die Sache mit den Klammern ist auch behoben wenn es noch irgendwo als HTML Code ist dann wird es bei der nächsten Forumcache Aktualisierung bestimmt verschwinden und als Klammern erscheinen

@deathbyaclown
ich kann also beliebig viele klassen mit einer bestimmten anderen klasse via extends verknüpfen?

ich bin zwar nicht debac aber ich antworte dir mal :wink:
man kann in Java nur von einer Klasse erben, in C++ kannst hast du Multivererbung (von mehreren Klassen erben), in Java wurde das durch Interfaces realisiert diese bindest du mit implements ein.
Hier kannst ud wenn du willst bisschen was darüber lesen Java Kurs