# Unterschied zwischen Objektorientiert und prozedural ?



## I_Oscuridad (11. Sep 2008)

Ich habe mal eine Verständnis Frage;

Ich Versteh unter Prozeduraler Programmierung.
Ich habe meine main und dort ist z.b. die Methode Noteberechnen() drin.

Lese vorher z.b. 3 zahlen ein zahl1,zahl2,zahl3.

Wenn ich mein Programm jetzt Starte(die main) dann ruft die main die Klasse Notenrechner mit der Funktion Noteberechnen() auf.
Dort lese ich die drei zahlen ein Noteberechnen(zahl1,zahl2,zahl3) Jetzt übergebe ich ja Parameter und kann den Zustand immer ändern des Ergebniss weil ich ja immer neue zahlen eingeben könnte bei einen neustart des Programmes.Das ist doch dann objekt orientiert oder doch Prozedural.

Wie würde das Programm dann OOP aussehn oder habe ich einen ganz falschen ansatzt.

Ich bitte um Hilfe!!!


----------



## Wildcard (11. Sep 2008)

Das ist prozedural. Die Aufgabe ist viel zu klein um sie überhaupt sinnvoll objektorientiert abbilden zu können.


----------



## Guest (11. Sep 2008)

Bei der OOP gibts ein einfaches beispiel...

Stell dir vor du hast ne Bank..
Sie hat Kunden und Konten...
Die Bank greift auf Methoden von Kunde und Konto zu...
Ein Kunde weiß welche Konten er hat aber ein Konto weiß nicht wem es gehört...

Usw.. kann das beispiel nicht fortführen weil ich grad keine zeit habe^^
aber daran sieht man leicht die kapselung usw...


----------



## Final_Striker (11. Sep 2008)

könntest du mal vlt. deinen code posten?

der unterschied ist, das du beim objektorientierten programmieren mit objekten arbeitest. :roll:  :wink:


----------



## HLX (11. Sep 2008)

Beispiel Notenobjekte:

```
public abstract class AbstractNote {
    private int value;
    private String text;
  
    public AbstractNote(int aValue, String aText) {
        value = aValue;
        text = aText;
    }

    public int getValue() {
        return value;
    }

    public String getText() {
        return text;
    }

    public abstract boolean isLowerBetter();
}

public class Grade extends AbstractNote {

    private String country;

    public Grade(int aValue, String aText, String aCountry) {
        super(aValue, aText);
        country = aCountry;
    }

    public boolean isLowerBetter() {
        return true;
    }

    public String getCountry() {
        return country;
    }
}
```


----------



## ARadauer (11. Sep 2008)

ich muss wildcard zustimmen, es ist oft nicht sinnvoll in 20 zeiligen einlesen ausgabe programmen, krampfhaft objekt orientierte ansätze rein zu quetchen...


----------



## I_Oscuridad (11. Sep 2008)

Also ein code habe ich jetzt nicht mir geht es ja auch diesmal nicht ums Programmieren sondern um das Verständnis.
aber wenn ich mal mehr zeit haben werde ich einen code posten 



> Stell dir vor du hast ne Bank..
> Sie hat Kunden und Konten...
> Die Bank greift auf Methoden von Kunde und Konto zu...
> Ein Kunde weiß welche Konten er hat aber ein Konto weiß nicht wem es gehört



Hier greift mein Problem ein. 

Ich habe eine klasse bank eine klasse Kunden und eine Klasse Konten die alle in der main liegen, die würde Ich jetzt mit ensprechenden Funktionen Programmieren so das Meine Bank funktioniert.

Sind jetzt die klassen die objekte oder ist das dann noch immer Prozedural.

Mein Problem ist das ich den Unterschied überhaupt nicht verstehe.

Bitte versucht es mir mal in einen direkten vergleich zu erklären das ich den Unterschied sehe.

Vielen dank im vorraus.[/quote]


----------



## HLX (11. Sep 2008)

Klassen sind Objekttypen. Ein Objekt ist eine konkrete Instanz einer Klasse. Du kannst von einer Klasse mehrere Objekte haben.

Klassen liegen nicht in der main sondern in Java- bzw. kompiliert in Class-Dateien.

[EDIT] Klasse = Bank, Objekt 1 = Deutsche Bank, Objekt 2 = Volksbank Nepomukhausen, Objekt 3 = Dresdner Bank...


----------



## Leroy42 (11. Sep 2008)

Anonymous hat gesagt.:
			
		

> Bei der OOP gibts ein einfaches beispiel...
> 
> Stell dir vor du hast ne Bank..
> Sie hat Kunden und Konten...
> ...



Das ist ja mal ein hervorragendes Beispiel zur Einführung in die OOP!


----------

