Objektorientierte Programmierung, わからない です

Tearchen

Mitglied
moin, ich versuche jetz seit einiger Zeit die objektorientierte Programmierung zu verstehen.....
aber irgendwie blicke ich da noch nicht so richtig durch. Mal ein Beispiel mit einigen Fragen.

Java:
class MyTest{	
  public MyTest(int a){   // Konstruktor 1

    i =    a;
    j = true;
  }
 
  public MyTest(int a,boolean b){     // Konstruktor 2
    i = a;
    j = b;
  }
 
  public MyTest(boolean b){    // Konstruktor 3
    i = 3;
    j = b;
  }
				
  public     int i;          
  public boolean j;
}

public class MyClass{
  public static void main(String[] args){

    MyTest object1 = new MyTest(1);       
    MyTest object2 = new MyTest(2,true);  
    MyTest object3 = new MyTest(false);   
		
    System.out.println(object1.i +" "+ object1.j);
    System.out.println(object2.i +" "+ object2.j);
    System.out.println(object3.i +" "+ object3.j);
  }
}

//1 true
//2 true
//3 false

1. Variablen "public int i" "public boolean j" sind Instanzvariablen ?
1.1 die Variablen die für alle Konstruktoren gelten werden in der classe MyTest initialisiert ?
2. auf sie kann auch vom Hauptprogramm aus zugegriffen werden ?
3. sie können auch vom Hauptprogramm aus verändert werden weil public ?
4. oder können sie nur in der class MyTest verändert warden ?
5. MyClass kann lediglich auf sie zugreifen ?
6. Zeile 25, 26, 27 es werden Objekte/Instanzen von den Konstruktoren erstellt ?
7. wieso müssen Objekte erstellt werden ?
7. wenn ich das Programm compiliere werden 2 Dateien erstellt MyClass und MyTest
was ist der Sinn dahinter könnte man nicht komplett das ganze Programm in MyClass schreiben ?
 
Zuletzt bearbeitet:
T

tommysenf

Gast
moin, ich versuche jetz seit einiger Zeit die objektorientierte Programmierung zu verstehen.....
aber irgendwie blicke ich da noch nicht so richtig durch. Mal ein Beispiel mit einigen Fragen.

Java:
class MyTest{	
  public MyTest(int a){   // Konstruktor 1

    i =    a;
    j = true;
  }
 
  public MyTest(int a,boolean b){     // Konstruktor 2
    i = a;
    j = b;
  }
 
  public MyTest(boolean b){    // Konstruktor 3
    i = 3;
    j = b;
  }
				
  public     int i;          
  public boolean j;
}

public class MyClass{
  public static void main(String[] args){

    MyTest object1 = new MyTest(1);       
    MyTest object2 = new MyTest(2,true);  
    MyTest object3 = new MyTest(false);   
		
    System.out.println(object1.i +" "+ object1.j);
    System.out.println(object2.i +" "+ object2.j);
    System.out.println(object3.i +" "+ object3.j);
  }
}

//1 true
//2 true
//3 false

1. Variablen "public int i" "public boolean j" sind Instanzvariablen ?
1.1 die Variablen die für alle Konstruktoren gelten werden initialisiert ?
2. auf sie kann auch vom Hauptprogramm aus zugegriffen werden ?
3. sie können auch vom Hauptprogramm aus verändert werden weil public ?
4. oder können sie nur in der class MyTest verändert warden ?
5. MyClass kann lediglich auf sie zugreifen ?
6. Zeile 25, 26, 27 es werden Objekte/Instanzen von den Konstruktoren erstellt ?
7. wieso müssen Objekte erstellt werden ?
7. wenn ich das Programm compiliere werden 2 Dateien erstellt MyClass und MyTest
was ist der Sinn dahinter könnte man nicht komplett das ganze Programm in MyClass schreiben ?

1. Ja
1.1. Was verstehst du unter Variablen die für alle Konstruktoren gelten?
2. Ja
3. Ja
4. Nein, da public
5. Nein, alle Klassen können auf sie zugreifen, da public
6. Es werden Objekte/Instanzen von der Klasse erstellt, dabei werden diese über den entsprechenden Konstruktor initialisiert.
7. Stell die eine Klasse als Schablone/Bauplan für ein Gerät vor. Um so ein Gerät zu nutzen muss es erst mal nach dieser Vorlage erzeugt werden.
8. Es werden 2 Klassen erzeugt, weil du ein Programm geschrieben hast, welches aus 2 Klassen besteht. Man könnte den Quelltext auch in eine Klasse Packen, das hast du aber nicht gemacht.
 

Tearchen

Mitglied
1.1. Was verstehst du unter Variablen die für alle Konstruktoren gelten?

3 Konstruktoren in MyTest in den Konstruktoren werden die Werte der Variablen festgelegt.
Unter den 3 Konstruktoren werden die beiden Instanzvariablen i und j initialisiert ?
Sie gelten für alle 3 Konstruktoren ? es wird also festgelegt das alle i´s vom typ int sind
und alle j´s vom typ boolean.

Man könnte die Variablen auch direkt immer in den Konstruktoren initialisieren ? aber das macht man nicht weil mehr Code ? weil man mehr schreiben müsste ?
 

nrg

Top Contributor
1.1 alle instanzvariablen (alle nonstatic) werden implizit bei der objekterzeugung mit dem standardwert intialisiert. im konstruktor erfolgt dann noch ggf. die wertzuweißung.

d.h. es ist egal, ob du
Java:
private String test;
oder
Java:
private String test = null;
schreibst. nach der instanziierung ist test in beiden fällen
Code:
null

Man könnte die Variablen auch direkt immer in den Konstruktoren initialisieren?
aber das macht man nicht weil mehr Code?
weil man mehr schreiben müsste ?

die deklaration erfolgt ausserhalb, damit sie in der ganzen klasse verfügbar sind. die intialisierung s. oben und die wertzuweißung im konstruktor
 
Zuletzt bearbeitet:

Final_Striker

Top Contributor
1. Ja
1.1 versteht ich nicht
2. Ja
3. Ja
4.
5. Objekte vom Typ MyClass könne auf sie zugreifen.
6. Ja
7. Weil es eine Objektorientierte Programmierung ist ;-)
7. Der Sinn dahinter ist, das man pro Klasse eine Datei hat. :)
 

Haave

Top Contributor
1.1. Was verstehst du unter Variablen die für alle Konstruktoren gelten?
3 Konstruktoren in MyTest in den Konstruktoren werden die Werte der Variablen festgelegt.
Unter den 3 Konstruktoren werden die beiden Instanzvariablen i und j initialisiert ?
Sie gelten für alle 3 Konstruktoren ?
Die Assoziation ist ein bisschen schief. Die Instanzvariablen an sich gelten nicht für die Konstruktoren - sie gelten vielmehr für alle Objekte, die aus dieser Klasse instanziiert werden. Und um diese Objekte zu erzeugen, können dann diese oder jene Konstruktoren aufgerufen werden, die dann aus dem genannten Grund auch Zugriff auf die Instanzvariablen haben.

Am Rande: Wieso eigentlich Japanisch im Threadtitel? ^^
 

Tearchen

Mitglied
Die Assoziation ist ein bisschen schief. Die Instanzvariablen an sich gelten nicht für die Konstruktoren - sie gelten vielmehr für alle Objekte, die aus dieser Klasse instanziiert werden. Und um diese Objekte zu erzeugen, können dann diese oder jene Konstruktoren aufgerufen werden, die dann aus dem genannten Grund auch Zugriff auf die Instanzvariablen haben.

ahhhhh *bing* *Licht aufgeht*


Am Rande: Wieso eigentlich Japanisch im Threadtitel?

Lerne in meiner Freizeit japanisch, lerne Java für Klausuren :oops:

ps.:
わ か ら な い で す
wa ka ra na i de su
Ich weiß nicht ^^




Die Objekte werden also immer erzeugt durch

1. den Namen der Klasse in dem die Konstruktoren stehen
2. Name des Objektes
3. dann new um das Objekt zu erzeugen
4. aufruf der Konstruktoren
5. den Variablen die das Objekt besitzt werden Werte zugewiesen (muss nicht)

?


Die Konstruktoren in dem Programm sind Überladen da sich entweder die Variablen vom Typ unterscheiden oder in der Anzahl ?
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Rechnen mit Brüchen - objektorientierte Programmierung Java Basics - Anfänger-Themen 18
D Objektorientierte Programmierung Java Basics - Anfänger-Themen 13
Q Objektorientierte Programmierung Java Basics - Anfänger-Themen 17
T Objektorientierte Programmierung - Kein Plan wieso das nicht funktioniert! Java Basics - Anfänger-Themen 6
N Objektorientierte Programmierung: Erben von 2 Klassen - wie ist korrekte Vorgehensweise? Java Basics - Anfänger-Themen 16
W objektorientierte Programmierung Java Basics - Anfänger-Themen 25
W objektorientierte Programmierung - String in andere Klasse übergeben Java Basics - Anfänger-Themen 13
S Objektorientierte Programmierung Java Basics - Anfänger-Themen 21
C Objektorientierte Programmierung Java Basics - Anfänger-Themen 11
X Objektorientierte Java Programmierung - 3 Fragen zum Code Java Basics - Anfänger-Themen 5
M objektorientierte programmierung Java Basics - Anfänger-Themen 5
J Objektorientierte Programmierung Java Basics - Anfänger-Themen 5
B Java Objektorientierte Datenbank - Assoziation Hilfe Java Basics - Anfänger-Themen 4
S OOP Objektorientierte Frage Java Basics - Anfänger-Themen 5
M Java Programmierung Aufgabe Anfänger Java Basics - Anfänger-Themen 1
F Automat-Programmierung Java Basics - Anfänger-Themen 30
N Lambdas, Methodenref, fkt Programmierung ? Java Basics - Anfänger-Themen 10
districon Dynamisch Programmierung/Backtracking/Memoization Java Basics - Anfänger-Themen 3
S Buchstaben Programmierung Bedeutung Java Basics - Anfänger-Themen 4
S Hilfe bei Programmierung einer Hotelabrechnung Java Basics - Anfänger-Themen 5
enjoykimii Strukturierte Programmierung Hilfe Java Basics - Anfänger-Themen 29
A Frage zur programmierung Java Basics - Anfänger-Themen 12
Nerdinfekt Programmieranfänger, Schwierigkeiten mit der Programmierung Java Basics - Anfänger-Themen 6
U Compiler-Fehler Programmierung einer Drehkugel Java Basics - Anfänger-Themen 8
L Programmierung mit Hash Java Basics - Anfänger-Themen 3
C Wie habt Ihr angefangen mit der Java Programmierung, ohne Programmiervorkenntnisse Java Basics - Anfänger-Themen 8
J Problem bei der Programmierung eines Tannenbaums Java Basics - Anfänger-Themen 9
S GUI-Programmierung Sudoku-Rätsel lösen Java Basics - Anfänger-Themen 1
B Fibonacci Zahlen dynamische Programmierung Java Basics - Anfänger-Themen 7
S Programmierung simulieren - aber wie?! Java Basics - Anfänger-Themen 3
H Java Programmierung Java Basics - Anfänger-Themen 3
W Problem bei Programmierung von Monte-Carlo-Integration Java Basics - Anfänger-Themen 12
D Guten Tag mache gerade eine Umschulung zum FiSi war leider jetzt 2 Wochen Krank und wir hatten Prozendurale Programmierung. Java Basics - Anfänger-Themen 3
F Attribute bei Objektorientierter Programmierung Java Basics - Anfänger-Themen 11
F Ich brauche Hilfe bei Objektorientierter Programmierung... Java Basics - Anfänger-Themen 19
F Problem beim entfernen von mehreren Listenelementen auf einmal (Programmierung des Spiels Arschloch) Java Basics - Anfänger-Themen 1
J Texte für Java Programmierung besser verstehen? Java Basics - Anfänger-Themen 2
C GUI Programmierung unter Windows mit Java womit? Java Basics - Anfänger-Themen 11
D Collections Aufgaben Java-Programmierung Überforderung Java Basics - Anfänger-Themen 36
A GUI Programmierung mit Textfield Java Basics - Anfänger-Themen 3
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 3
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 2
U Brauche Hilfe bei Programmierung einer Produktdatenbank App Java Basics - Anfänger-Themen 4
L Dynamische Programmierung Java Basics - Anfänger-Themen 0
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
A Methoden Habe ein Problem bei folgender Programmierung Java Basics - Anfänger-Themen 15
slejden Erste Schritte Frage zur OOP (objektorientierten Programmierung Java Basics - Anfänger-Themen 4
V Threads Nebenläufige Programmierung Java Basics - Anfänger-Themen 6
V Nebenläufige Programmierung Java Basics - Anfänger-Themen 5
Henri Paare Frage über Java Programmierung Java Basics - Anfänger-Themen 10
S Programmierung eines Geldwechselautomaten! Java Basics - Anfänger-Themen 2
R Einige Neulingsfragen (Wrapper, GUI-Programmierung) Java Basics - Anfänger-Themen 4
D JavaBeans und die visuelle Programmierung Java Basics - Anfänger-Themen 2
M Dringend Experten für Scala-Play basierte Programmierung!!!! Java Basics - Anfänger-Themen 0
Z Programmierung eines Stacks Java Basics - Anfänger-Themen 19
A Programmierung herangehensweise Java Basics - Anfänger-Themen 9
G 3D-Spiele-Programmierung Java Basics - Anfänger-Themen 3
I Programmierung-Hausaufgabe: Hilfe benötigt Java Basics - Anfänger-Themen 8
R Kann jemand diese Java Programmierung machen? Versteh ich leider nicht Java Basics - Anfänger-Themen 17
T Nachhilfe JAVA Programmierung Java Basics - Anfänger-Themen 1
R Schaffe es nicht Random-Programmierung zu vollenden. Wo liegt der Fehler in diesem Code? Java Basics - Anfänger-Themen 13
N Socket-Programmierung Java Basics - Anfänger-Themen 4
kaoZ Android Programmierung / Erstellen einer neuen Instanz Java Basics - Anfänger-Themen 2
O OOP Input & Output in der GUI-Programmierung Java Basics - Anfänger-Themen 2
O Java Grafik-Programmierung? Java Basics - Anfänger-Themen 16
F Fehler bei Array und Index Programmierung Java Basics - Anfänger-Themen 18
K Objektorientierten Programmierung Java Basics - Anfänger-Themen 3
R Einstieg in Programmierung Java Basics - Anfänger-Themen 8
W Problem bei MineSweeper Programmierung Java Basics - Anfänger-Themen 10
D Best Practise für Programmierung Java Basics - Anfänger-Themen 7
D Erste Schritte Einstieg in die Java Spiel Programmierung Java Basics - Anfänger-Themen 7
E Algorithmen und Programmierung - Datum und Zeit ausgeben? Java Basics - Anfänger-Themen 8
Grejak OOP Einstieg in Objekt-Orientierte-Programmierung Java Basics - Anfänger-Themen 3
D Frage zu Bit Operatoren in der Programmierung Java Basics - Anfänger-Themen 9
U Geräte-Programmierung ? Java Basics - Anfänger-Themen 15
S 2 kurz Fragen zur Möglichkeit der Programmierung Java Basics - Anfänger-Themen 7
J Allgemeine Fragen zur Programmierung Java Basics - Anfänger-Themen 36
N Grafische Programmierung mit jeweils anderen Bildern bei versch. Ergebnissen Java Basics - Anfänger-Themen 9
M Gui Programmierung Java Basics - Anfänger-Themen 21
J Spielevorschläge für Programmierung Java Basics - Anfänger-Themen 3
O Eisenbahn-Programmierung Java Basics - Anfänger-Themen 8
S Schlechte Programmierung Java Basics - Anfänger-Themen 5
O Probleme bei OO-Programmierung mit Vererbung Java Basics - Anfänger-Themen 18
M Programmierung kürzen??? Java Basics - Anfänger-Themen 5
N Umstieg auf objektorintierte Programmierung Java Basics - Anfänger-Themen 2
N Probleme mit meiner Programmierung Java Basics - Anfänger-Themen 5
M Meine erste Java Programmierung funzt nicht :-( Java Basics - Anfänger-Themen 34
H Programmierung Ampelsteuerung Java Basics - Anfänger-Themen 4
J [Erledigt] Applet Programmierung Java Basics - Anfänger-Themen 4
T Gui Programmierung lernen Java Basics - Anfänger-Themen 3
E Toolkit (Scanner) Programmierung Java Basics - Anfänger-Themen 5
D Programmierung Profi Java Basics - Anfänger-Themen 18
G Problem bei Programmierung Java Basics - Anfänger-Themen 15
G Problem bei Programmierung Java Basics - Anfänger-Themen 2
G thread programmierung für ANFÄNGER Java Basics - Anfänger-Themen 2
S generic programmierung "ne:w T[X]" Java Basics - Anfänger-Themen 2
A Einstieg in die Programmierung Java Basics - Anfänger-Themen 20
I Frage wegen Wörterbuch Programmierung Java Basics - Anfänger-Themen 13
X Programmierung mit geometrischen Figuren Java Basics - Anfänger-Themen 3
G Opjektorientierte Programmierung (OOP). einfach für euch Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben