Protected und Private Deklaration

kossy

Bekanntes Mitglied
Hallo !

Ich habe mal eine Frage zu der Protected Deklaration in Java.

Nehmen wir mal an, ich hätte drei Klassen (A, B und C). Klasse B erweitert Klasse A und Klasse C erweitert Klasse B.

Wenn ich jetzt in Klasse A Methoden oder Membervariablen mit der Deklaration protected oder private definiere (und diese auch in den Unterklassen sonst nicht irgendwie überschrieben werden), sind diese dann jeweils verfügbar, wenn ich eine konkrete Instanz der jeweiligen Unterklasse erzeuge?

Und sind sie auch (insbesondere die protected Methoden und Membervariablen) in Klasse A jeweils ohne Einschränkung verfügbar?

Grüße
Kossy
 
Zuletzt bearbeitet:

pl4gu33

Top Contributor
kommt drauf an, ob sie im gleiche Package liegen,....
dann kannst du nur auf die protected zugreifen ansonsten gar nicht

weiterhin ist entscheiden, ob du die Instanz innerhalb einer bestimmten Klasse erzeugst oder in einer eigenen....

wenn B extends A ... kannst du innerhalb von B mit this. oder eine konkreten Instanz auf das protected Attribut von A zugreifen AUCH wenns im anderen Package liegt.

Aber wenn du B in einer neuen Klasse erzeugst geht das nicht
 
Zuletzt bearbeitet:

W9ND3R

Aktives Mitglied
Die protected Variablen sollten verfügbar sein. Die private Variablen nur in der jeweiligen Klasse.
Aber hey - probier's doch einfach mal aus ... Kannst dir ja ein kleines Beispiel dazu programmieren.
 

HimBromBeere

Top Contributor
protected --> Variable/Methode innerhalb der Klasse und alle ihrer Subklassen sichtbar (Packet hin oder her)
private --> Variable/Methode nur innerhalb der Klasse selbst sichtbar
 

pl4gu33

Top Contributor
protected --> Variable/Methode innerhalb der Klasse und alle ihrer Subklassen sichtbar (Packet hin oder her)
private --> Variable/Methode nur innerhalb der Klasse selbst sichtbar

€dit: okay ich hab dein Satz gerade nochmal gelesen :D das steht da ja auch so :D der Kaffee wirkt noch nicht :D Egal ich lass das Beispiel nun trotzdem mal stehen^^


mm also entweder stehe ich gerade auf dem Schlauch oder ka :D aber A in einem Package ist und B/C dann geht sowas ja :
Java:
public class C extends B{
	protected int c1;
	private String c2;
	
	public C(){
		//Zugriff aufs Protected Attibute
		this.a1=4 ;
	}	
}

aber sowas geht nicht:

Java:
public class UnbeteiligteKlasse {	
	public UnbeteiligteKlasse(){
		C c=new C();
		[STRIKE]c.a1=0;[/STRIKE]
		c.b1=4;
		c.c1=3;
	}	
}

darum ist es nicht ganz egal, wenn man die Objekte außerhalb der beteiligten Klassen erzeugt in welchem Package sie liegen
 

HimBromBeere

Top Contributor
darum ist es nicht ganz egal, wenn man die Objekte außerhalb der beteiligten Klassen erzeugt in welchem Package sie liegen
Das würde auch im selben Packet nicht gehen. Wie der Name schon verrät, hat ja UnbeteiligteKlasse mit A/B/C rein gar nichts zu tun und kommt daher auch nicht an die intern in diesen Klassen mittels protected geschützten Variablen und Methoden ran (Reflection lass ich mal außen vor).
 

pl4gu33

Top Contributor
Das würde auch im selben Packet nicht gehen. Wie der Name schon verrät, hat ja UnbeteiligteKlasse mit A/B/C rein gar nichts zu tun und kommt daher auch nicht an die intern in diesen Klassen mittels protected geschützten Variablen und Methoden ran (Reflection lass ich mal außen vor).

ähm ich weiß nicht, ob wir nicht gerade aneinander vorbei reden :D

ich meinte, dass das hier geht:
wenn UnbeteiigteKlasse .z.b. im Package von C / B liegt und A im anderen liegt geht das hier:

Java:
public class UnbeteiligteKlasse {   
    public UnbeteiligteKlasse(){
        C c=new C();
        [STRIKE]c.a1=0;[/STRIKE]
        c.b1=4;
        c.c1=3;
    }   
}

bis auf das c.a1 ..... weil das im anderen Package liegt
und a1/b1 (von Klasse B) und c1(von Klasse C) Protected sind

also ich habs auch gerade nochmal ausprobiert, weil ich jetzt selber verwirrt war aber es geht wie gesagt
 
Zuletzt bearbeitet:

HimBromBeere

Top Contributor
wenn UnbeteiigteKlasse .z.b. im Package von C / B liegt und A im anderen liegt geht das hier:

Java:
package test;

public class UnbeteiligteKlasse {   
    public UnbeteiligteKlasse(){
        C c=new C();
        c.a1=0; // das geeht nicht, soweit sind wir uns einig
        c.b1=4; // und das soll gehen?
        c.c1=3;
    }   
}

Java:
package test;

public class C {  
    protected A a1, b1, c1;
}
Irgendwie glaub ich das nicht so ganz... also ich hab jedenfalls auf die Variablen keinen Zugriff, keine Ahnung, wie du den bekommst.

[EDIT]OK... ich glaub´s... wusste gar nicht, dass das mit
Code:
protected
auch innerhalb des Packetes geht. Ich hatte beide Klassen (
Code:
Unbeteiligte
und
Code:
C
) nur im Standard-Packet liegen, da nekam ich auf die
Code:
protected
Variablen von
Code:
C
keinen Zugriff. Wieder was gelernt.[/EDIT]
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Kapselung Klasse private, Konstruktor protected Java Basics - Anfänger-Themen 10
G Public ,private,protected Java Basics - Anfänger-Themen 1
U public, private, protected und "default access" - Java Basics - Anfänger-Themen 14
M Jede Variable als private, protected etc. deklarieren? Java Basics - Anfänger-Themen 7
K Sichtbarkeit protected: Attribute trotzdem aufrufbar. Java Basics - Anfänger-Themen 4
H Kapselung protected aber in einer Kindklasse nicht zugänglich Java Basics - Anfänger-Themen 5
B Vererbung - Sichtbarkeitsmodifikation - protected Java Basics - Anfänger-Themen 10
S Zugriff auf protected Fields = guter Programmierstil? Java Basics - Anfänger-Themen 11
S protected = nicht protected? Java Basics - Anfänger-Themen 9
Aprendiendo Zwei Fragen und ein geerbtes "protected"-Attribut Java Basics - Anfänger-Themen 2
wilmaed protected class Java Basics - Anfänger-Themen 0
K Vererbung protected NUR für Unterklassen? Java Basics - Anfänger-Themen 17
M Schlüsselworte Ohne Modifizierer gleichbedeutend mit protected? Java Basics - Anfänger-Themen 6
K Compiler-Fehler vererbtes protected Java Basics - Anfänger-Themen 41
B Vererbung Probleme bei Zugriff auf protected-Methoden in einer Unterklasse Java Basics - Anfänger-Themen 27
J protected Methoden Java Basics - Anfänger-Themen 8
W Frage public protected konstruktor Java Basics - Anfänger-Themen 6
T Kapselung: public-Methoden in protected-Klassen Java Basics - Anfänger-Themen 3
A protected Java Basics - Anfänger-Themen 18
F Ewiges Leid mit "protected" (oder "wie der beste Freund eine hinrücks betrügt") Java Basics - Anfänger-Themen 26
A Frage zu Protected in SubSubKlasse Java Basics - Anfänger-Themen 4
G Protected Variablen außerhalb der eigenen Klassenhierarchie sichtbar Java Basics - Anfänger-Themen 5
N Wann muss eine Methode - protected sein wann public wann. Java Basics - Anfänger-Themen 5
stekoe2000 protected abstrac class Java Basics - Anfänger-Themen 3
B public und protected Java Basics - Anfänger-Themen 11
S Veränderung von Protected Daten durch Übergabe? Java Basics - Anfänger-Themen 3
M Konstruktor protected machen Java Basics - Anfänger-Themen 7
H protected Java Basics - Anfänger-Themen 2
V Auf protected ArrayList von anderer Klasse zugreifen Java Basics - Anfänger-Themen 4
J protected und Standard Sichtbarkeit Java Basics - Anfänger-Themen 2
P protected funktioniert nicht? Java Basics - Anfänger-Themen 5
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
M Private Variable Java Basics - Anfänger-Themen 2
Gaudimagspam Attribute einfügen private Java Basics - Anfänger-Themen 3
N JUnit und private Methoden testen. Java Basics - Anfänger-Themen 9
Z private Klassenvariablen Java Basics - Anfänger-Themen 8
S Private int in Klasse Java Basics - Anfänger-Themen 4
H Vererbung mit private instanzvariablen Java Basics - Anfänger-Themen 9
C Methoden Vererbung private Attribute/public Methoden Java Basics - Anfänger-Themen 4
J Klasse wird als private erkannt obwohl sie public deklariert ist Java Basics - Anfänger-Themen 3
E 2 Probleme - Datum & private finale Variablen Java Basics - Anfänger-Themen 5
shiroX Klassen Klasse/Methode private final jUnit-Fehler Java Basics - Anfänger-Themen 5
N Instanzvariablen als private... Java Basics - Anfänger-Themen 2
A Private Attribut aus fremder Klasse lesen ? Java Basics - Anfänger-Themen 19
P Methoden private int[] in main Java Basics - Anfänger-Themen 16
A Klassen Werte in den private Bereich übergeben Java Basics - Anfänger-Themen 5
C Collections: private Map Java Basics - Anfänger-Themen 4
M Wie private Methoden mit Asserstions testen? Java Basics - Anfänger-Themen 3
M Verständnisfrage zu JUnit Tests und private Methoden Java Basics - Anfänger-Themen 3
D Klassenvariablen standardmäßig private oder public? Java Basics - Anfänger-Themen 2
W private Array Loops Java Basics - Anfänger-Themen 4
B public/private nur 1x schreiben Java Basics - Anfänger-Themen 3
H Privat ist nicht mehr private Java Basics - Anfänger-Themen 7
J Vererbung Zugriff auf private Variable Java Basics - Anfänger-Themen 10
A Variablen lokale Variable als private? Java Basics - Anfänger-Themen 3
A private string array Java Basics - Anfänger-Themen 5
B auf private Variable durch eine Methode zugreifen Java Basics - Anfänger-Themen 8
J Probleme mit verschiedenen Private Klassen Java Basics - Anfänger-Themen 3
T public-private problem Java Basics - Anfänger-Themen 5
C Comparator und private Variablen Java Basics - Anfänger-Themen 7
K Methoden als private deklarieren? Java Basics - Anfänger-Themen 13
F Im Konstruktor mit Settern auf private Attribute zugreifen - oder nicht? Java Basics - Anfänger-Themen 18
H NEtBeans: Fehler: XXX has private access... Java Basics - Anfänger-Themen 2
K Kapselung public / private verständis problem Java Basics - Anfänger-Themen 17
E einfache Frage zu private Java Basics - Anfänger-Themen 26
N public class -> public method -> variable private? Java Basics - Anfänger-Themen 10
W Private Methode variablen übergeben..?! WIE! Java Basics - Anfänger-Themen 30
K OOP Datenkapselung mittels private - length Attribut bei Array Java Basics - Anfänger-Themen 3
L Private Methode in Subklasse? Java Basics - Anfänger-Themen 2
S Private Class Problem Java Basics - Anfänger-Themen 17
K Kann man Private-Konstruktoren doch aurufen? Java Basics - Anfänger-Themen 8
Luk10 Vererben von private instanzvariablen Java Basics - Anfänger-Themen 20
P zugriff auf private variablen Java Basics - Anfänger-Themen 5
A Allgemeine Frage zur Sichtbarkeit "private" Java Basics - Anfänger-Themen 5
berliner Klassen Vererbung und Zugriff auf innere private Variable Java Basics - Anfänger-Themen 22
G field public/private wann Java Basics - Anfänger-Themen 11
Spin private Frage Java Basics - Anfänger-Themen 16
G Zugriff auf private Variablen einer inneren Klasse Java Basics - Anfänger-Themen 5
G Private Messages versenden Java Basics - Anfänger-Themen 13
S Zugriffe über Private Instanzvariablen Java Basics - Anfänger-Themen 3
J Public / Private Keys speichern bzw. lesen? Java Basics - Anfänger-Themen 8
R Private Methoden von auserhalb aufrufen Java Basics - Anfänger-Themen 2
N private variable vom typ einer klasse Java Basics - Anfänger-Themen 20
A in abstract Klasse private Variablen Java Basics - Anfänger-Themen 3
G GUI Controls private oder public Java Basics - Anfänger-Themen 6
G Variablen public oder private? Java Basics - Anfänger-Themen 9
P Private Klassen Java Basics - Anfänger-Themen 4
F Frage zur Vererbung und Zugriffmodifikator private Java Basics - Anfänger-Themen 3
S private public Java Basics - Anfänger-Themen 5
R private / public Frage Java Basics - Anfänger-Themen 7
S private String text; -> "Illegal start of expression Java Basics - Anfänger-Themen 7
R Klasse nicht sichtbar(kein private-Fehler) Java Basics - Anfänger-Themen 2
R Private Klasse in Applet nutzen? Java Basics - Anfänger-Themen 9
B Instanzvariablen private? Java Basics - Anfänger-Themen 5
M Sichtbarkeit von private Java Basics - Anfänger-Themen 2
A public/private/etc. Zusatz weglassen Java Basics - Anfänger-Themen 2
M OOP frage, private variablen default-wert zuweisen sinnvoll? Java Basics - Anfänger-Themen 5
M [SOLVED]private Daten head - neues objekt? Java Basics - Anfänger-Themen 12
H Vererbung:private Java Basics - Anfänger-Themen 7
T private final String oder final String? Was ist richtig? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben