Dynamischer und statischer Typ von Referenzvariablen

Wi-yvi

Mitglied
Hallo :)

Ich bin grade am verzweifeln an einer Java-Aufgabe.

Geben Sie für die Anweisungen (A)-(G) in der main-Methode von Aufgabe_2 jeweils den dynamischen und den statischen Typ von der Referenzvariablen s und p an.

Java:
 public class Aufgabe_2
{
  public static void main (String []args)
  {
   Person p = new Person ();  //(A)
   Student s = new Student ();  //(B)
     p = new Student (); //(C)
     p = new Dozent (); //(D)
     s = new Student (); //(E)
     p = new Person (); // (F)
     p = new Student (); // (G)
     }
 }
class Person {// ...}
class Student extends Person {// ...}
class Dozent extends Person {// ...}

Zeile | Dynamischer Typ p | Statischer Typ p | Dynamischer Typ s | Statischer Typ s
(A)____|_______?_________|_______?______|_______? ________|_______?______
(B)____|_______?_________|_______?______|_______? ________|_______?______
(C)____|_______?_________|_______?______|_______? ________|_______?______
(D)____|_______?_________|_______?______|_______? ________|_______?______
(E)____|_______?_________|_______?______|_______? ________|_______?______
(F)____|_______?_________|_______?______|_______? ________|_______?______
(G)____|_______?_________|_______?______|_______? ________|_______?______


Kann mir bitte jemand helfen?
Vielen Dank im Voraus!
 

Phash

Top Contributor
Was genau verstehst du nicht?
Du könntest einfach mal nachlesen, was ein statischer und ein dynamischer Typ ist, und dann diese Erkenntnis auf deine Aufgabe übertragen
 

Wi-yvi

Mitglied
Ich weiß was ein statischer und dynamischer Typ ist. Der statische steht bei der Deklaration fest und der dynamische kann sich während der Laufzeit ändern. Ich weiß aber nicht wie ich das genau auf die Aufgabe anwenden soll. Habe auch kein Beispiel dazu gefunden, sondern nur allgemeine Definitionen von den Typen.
 

Tobse

Top Contributor
Java:
Person p = new Person();
Student s = new Student();
Was sind da die statischen und was die dynamischen Typen? Wenn du jetzt die Statischen Typen von
Code:
s
und
Code:
p
kennst, was sagt das über die statischen typen der anderen Anweisungen?
 

DrZoidberg

Top Contributor
Wenn du schreibst
Java:
Person p = ...
dann ist der statische Typ von p Person. Der statische Typ wird bei der Deklaration immer vor den Variablennamen geschrieben.

Schreibst du
Java:
new Person()
Dann erstellst du ein Objekt, das den dynamischen Typ Person hat. Der dynamische Typ wird beim Erstellen von Objekten festgelegt.

Übrigens - der dynamische Typ wird im Objekt selbst gespeichert und ist damit ein Teil der Eigenschaften eines Objekts. Für den statischen Typ gilt das nicht.
 

Natac

Bekanntes Mitglied
Ach komm. Lass uns das noch ein wenig weiter denken. Mit dem was DrZoidberg geschrieben hat, gebe ich dir mal die Lösung für (B). Vielleicht kannst du dir dann den Rest ja von alleine erschließen.

----------------------- (man verzeihe mir das weglassen der
Java:
-tags, aber sonst hätten die Farben nicht funktioniert)[/SIZE]
public class Aufgabe_2
{
[COLOR="LightBlue"]_[/COLOR]public static void main (String []args)
[COLOR="LightBlue"]_[/COLOR]{
[COLOR="LightBlue"]__[/COLOR][COLOR="DarkRed"]Person [/COLOR]p = new [COLOR="DarkOrchid"]Person [/COLOR]();  //(A)
[COLOR="LightBlue"]__[/COLOR][COLOR="Green"]Student [/COLOR]s = new [COLOR="RoyalBlue"]Student [/COLOR]();  //(B)
   ...
-----------------------
[B]Zeile | Dynamischer Typ p | Statischer Typ p | Dynamischer Typ s | Statischer Typ s[/B]
(B)____|_____[COLOR="DarkOrchid"]Person[/COLOR]_______|_____ [COLOR="DarkRed"]Person[/COLOR]____|______[COLOR="RoyalBlue"]Student [/COLOR]____|_____[COLOR="Green"]Student[/COLOR]____

Und wenn den Variablen p und s dann neue Objekte zugeordnet werden, kann sich der dynamische typ eben ändern. Er ist ja "dynamisch". Der "statische" Typ hingegen ändert sich nicht, da er (wie der Name schon sagt) statisch ist (also feststeht).

Properier mal die anderen Zeilen entsprechend auszufüllen. :rtfm:
 

Wi-yvi

Mitglied
Vielen Dank Natac! :toll:

Ich habe jetzt noch mal versucht die Tabelle auszufüllen.
Die sieht dann wie folgt aus:

Zeile | Dynamischer Typ p | Statischer Typ p | Dynamischer Typ s | Statischer Typ s
A | Person | Person | - | -
B | Person | Person | Student | Student
C | Student | Person | Student | Student
D | Dozent | Person | Student | Student
E | Dozent | Person | Student | Student
F | Person | Person | Student | Student
G | Student | Person | Student | Student

Ist das so richtig? :)
Weil irgendwie ändert sich bei mir immer nur der dynamische Typ p und alle anderen bleiben gleich. Weil s wird ja in Zeile E Student zugewiesen, aber das ist es ja schon vorher.. :reflect:

Liebe Grüße :meld:
 

Natac

Bekanntes Mitglied
Sieht für mich richtig aus.

Na ich denke die Aufgabe wird irgendwo in 10 Minuten konzipiert sein. Da macht man sich hinterher nicht so die Gedanken, ob das Lösungsbild nun abwechlsungsreich ist oder nicht ;)
 

Wi-yvi

Mitglied
Da wirst du wohl recht haben ;)
Dann ist das ja doch gar nicht so schwer..

Und dieses

[Java]
class Person { // ... }
class Student extends Person { // ... }
class Dozent extends Person { // ... }
[/code]

brauche ich nicht für die Aufgabe? Oder muss ich da noch irgendwas berücksichtigen?
 

Tobse

Top Contributor
Da wirst du wohl recht haben ;)
Dann ist das ja doch gar nicht so schwer..

Und dieses

[Java]
class Person { // ... }
class Student extends Person { // ... }
class Dozent extends Person { // ... }
[/code]

brauche ich nicht für die Aufgabe? Oder muss ich da noch irgendwas berücksichtigen?

Für die Aufgabe ist das irrelevant.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Statischer und Dynamischer Typ Java Basics - Anfänger-Themen 6
L Polymorphie Dynamischer oder Statischer Typ für Methodenparameter Java Basics - Anfänger-Themen 8
T Unterschied dynamischer und statischer Laufzeittyp Java Basics - Anfänger-Themen 1
G Bei dynamischer Arrayliste nach jeder Auswahl Zahl entfernen Java Basics - Anfänger-Themen 3
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
S Ein Bild mit dynamischer Quelle neuzeichnen Java Basics - Anfänger-Themen 12
C Input/Output Dynamischer Output von Arrays Java Basics - Anfänger-Themen 3
D dynamischer Aufruf Java Basics - Anfänger-Themen 2
C Datentypen Array mit dynamischer Länge? Java Basics - Anfänger-Themen 14
J Verschachtelte for schleife mit dynamischer Anzahl an Schleifen Java Basics - Anfänger-Themen 10
N "Dynamischer" Iterator Java Basics - Anfänger-Themen 21
G Dynamischer Methodenaufruf Java Basics - Anfänger-Themen 3
T Dynamischer JTabbedPane Probleme mit JTextArea Java Basics - Anfänger-Themen 2
G [Hibernate] Dynamischer Datenbankpfad Java Basics - Anfänger-Themen 4
S Fehler nach dynamischer Anpassung - Minesweeper Java Basics - Anfänger-Themen 6
V Dynamischer Klassen bzw. Methodenaufruf Java Basics - Anfänger-Themen 6
H statische, dynamischer Typ von Variablen Java Basics - Anfänger-Themen 1
B Dynamischer Filename Java Basics - Anfänger-Themen 3
M Variabler/dynamischer Objektname? Java Basics - Anfänger-Themen 12
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
H Polymorphie Interfaces und statischer Typ Java Basics - Anfänger-Themen 33
C Statischer Typ aber Variable nicht statisch? Java Basics - Anfänger-Themen 5
G Polymorphie, Vererbung, statischer Typ, Laufzeittyp Java Basics - Anfänger-Themen 2
I Statischer Initializer Java Basics - Anfänger-Themen 4
kilopack15 this.v mit statischer Variable v? Java Basics - Anfänger-Themen 1
M Input/Output tcp-Server mit statischer Parallelität Java Basics - Anfänger-Themen 7
W If_Bedingung in statischer Methode beim zweiten Mal nicht durchlaufen Java Basics - Anfänger-Themen 14
N Initialisierer / statischer Initialisierer verstehen Java Basics - Anfänger-Themen 6
C Methoden Rückgabewert von statischer Methode ignorieren Java Basics - Anfänger-Themen 8
N ArrayList verwenden in statischer Methode Java Basics - Anfänger-Themen 2
R Frage zu statischer Methode toString() Java Basics - Anfänger-Themen 3
Luk10 Problem mit Singleton bzw statischer Referenz! Java Basics - Anfänger-Themen 16
C Seitenwechsel in statischer Methode? Java Basics - Anfänger-Themen 6
P Statischer Import - ich raffs nicht! Java Basics - Anfänger-Themen 3
H Unterschied statischer/dynamische Typ einer Variablen Java Basics - Anfänger-Themen 2
H statischer Zugriff / accessed in a static way Java Basics - Anfänger-Themen 3
Paule Aufruf nicht statischer Methode in statischer MEthode Java Basics - Anfänger-Themen 7
D statischer Konstruktor Java Basics - Anfänger-Themen 9
B Polymorphie Warum funktionieren polymorphe Referenzvariablen bei überschriebenen Methoden und bei nicht überschriebenen nicht? Java Basics - Anfänger-Themen 3
T Belegung einer Referenzvariablen Java Basics - Anfänger-Themen 14
K Frage zu Referenzvariablen und deren Typen Java Basics - Anfänger-Themen 6
R Verständnisfrage Referenzvariablen in array Java Basics - Anfänger-Themen 3
T Referenzvariablen - warum muss der Typ definiert werden? Java Basics - Anfänger-Themen 14
G Referenzvariablen Java Basics - Anfänger-Themen 15
H Referenzvariablen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben