public und protected

Status
Nicht offen für weitere Antworten.

Bit2_Gosu

Bekanntes Mitglied
Hallo!

Eine Funtion mit einer public visibility kann ja nicht nur in der Klasse selber und in Unterklassen gesehen werden, sondern auch von allen anderen Klassen.

Nun frage ich mich:

Der einzige Weg um eine Funktion einer Klasse aufzurufen, ist doch ein Objekt der Klasse zu instantiieren und über dieses dann die Funktion aufzurufen oder?

Wenn ich ein Objekt einer Klasse erzeuge, wird die Klasse, in der ich das tuhe doch automatisch zu einer Unterklasse der Klasse mit der Funktion oder?

Also kann ich Funktionen einer Klasse doch nur von einer Unterklasse aus aufrufen oder? Dann brauche ich doch nicht protected, sondern kann immer public nehmen (und pivate falls nötig) oder ?
 
S

SlaterB

Gast
> Der einzige Weg um eine Funktion einer Klasse aufzurufen, ist doch ein Objekt der Klasse zu instantiieren und über dieses dann die Funktion aufzurufen oder?

ja

> Wenn ich ein Objekt einer Klasse erzeuge, wird die Klasse, in der ich das tuhe doch automatisch zu einer Unterklasse der Klasse mit der Funktion oder?

nein

> Also kann ich Funktionen einer Klasse doch nur von einer Unterklasse aus aufrufen oder?

nein
 

sliwalker

Top Contributor
Bit2_Gosu hat gesagt.:
Der einzige Weg um eine Funktion einer Klasse aufzurufen, ist doch ein Objekt der Klasse zu instantiieren und über dieses dann die Funktion aufzurufen oder?
Naja...nicht ganz. Du kannst die Methode aus static deklarieren bzw. ein Singleton aus der Klasse machen.


Bit2_Gosu hat gesagt.:
Wenn ich ein Objekt einer Klasse erzeuge, wird die Klasse, in der ich das tuhe doch automatisch zu einer Unterklasse der Klasse mit der Funktion oder?

/sign SlaterB
Auf keinen Fall, um es zu verschärfen. Ableiten tust Du nur durch "extends"

Bit2_Gosu hat gesagt.:
Also kann ich Funktionen einer Klasse doch nur von einer Unterklasse aus aufrufen oder? Dann brauche ich doch nicht protected, sondern kann immer public nehmen (und pivate falls nötig) oder ?
/sign SlaterB
Du instanzierst Dir ein Objekt einer Klasse innerhalb einer anderen und hast dann dort Zugriff auf die Methoden der neuen Instanz. Und da siehst Du nur public und nicht private.
protected sehen nur Klassen, die eine Unterklasse von der Klasse ist, wo die protected methode drin ist.

greetz
SLi
 

Bit2_Gosu

Bekanntes Mitglied
Hm. Erst mal vielen Dank euch beiden!

Also ich habe eine Klasse "Matcher" mit der Funktion "protected final double simulate()".
Ich habe eine Klasse, "Events". In "Events" erzeuge ich ein Objekt der Klasse "Matcher" und rufe dann über dieses die Funktion simulate() auf.

Da das geht, muss "Events" also eine Unterklasse von "Matcher" sein (wegen protected). Wieso das denn? In "Events" steht ja nicht "extends Matcher" oder so ??
 
S

SlaterB

Gast
protected erlaubt den Aufruf auch allen anderen Klassen im gleichen package
 

Bit2_Gosu

Bekanntes Mitglied
Na toll, das hätte sowohl geklärt und da steht da einfach im Internet

A member function with protected visibility can be invoked by any member function in the class in which it is defined or any subclasses of that class.

Das ist doch schlichtweg unvollständig dann....

Aber danke, das klärt einiges !!

Noch eine letzte Frage, habe ich, damit ich weiß, dass ich das mit Unterklassen auch richtig verstanden habe ;)


eine Klasse "test" extends die Klasse "blabb". Wenn ich in "test"
Code:
System.out.println(super.getClass())
sage, dann wird aber "test" und nicht "blabb" ausgegeben.
Ich dachte durch extends wir die Klasse mit dem extends zur Unterklasse der Klasse die extended wird?
 
S

SlaterB

Gast
> Ich dachte durch extends wir die Klasse mit dem extends zur Unterklasse der Klasse die extended wird?

die Vererbung widerspricht sich nicht mit der Ausgabe?
wenn doch wo genau sieht jemand einen Widerspruch?

getClass() ist eine finale native Operation von Object und liefert immer die Klasse, die ein Objekt tatsächlich hat/ ist,
die unterste Unterklasse
 

Bit2_Gosu

Bekanntes Mitglied
naja, aber mit "super" greift man doch auf die Oberklasse zu. Und die heißt ja in unserem Fall "blabb".

Da müsste doch "blabb" ausgegeben werden ?!?
 

Jango

Gesperrter Benutzer
Bit2_Gosu hat gesagt.:
Da müsste doch "blabb" ausgegeben werden ?!?

SlaterB hat gesagt.:
getClass() ist eine finale native Operation von Object und liefert immer die Klasse, die ein Objekt tatsächlich hat/ ist,
die unterste Unterklasse
Erkläre uns genau, was du daran nicht verstanden hast.

Bit2_Gosu hat gesagt.:
Noch eine letzte Frage, habe ich, damit ich weiß, dass ich das mit Unterklassen auch richtig verstanden habe
Davon bist du noch weit weg. Ich empfehle dir, das Kapitel mit der Vererbung nochmal von vorne zu beginnen. :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Frage public protected konstruktor Java Basics - Anfänger-Themen 6
T Kapselung: public-Methoden in protected-Klassen Java Basics - Anfänger-Themen 3
N Wann muss eine Methode - protected sein wann public wann. Java Basics - Anfänger-Themen 5
G Public ,private,protected Java Basics - Anfänger-Themen 1
U public, private, protected und "default access" - Java Basics - Anfänger-Themen 14
C Kann mir jemand sagen warum public void unzulässig ist? Java Basics - Anfänger-Themen 2
Say public/default Interface Java Basics - Anfänger-Themen 9
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
Denix The public type Main must be defined in its own fileJava(16777541) Java Basics - Anfänger-Themen 13
melaniemueller Datenkapselung Sichtbarkeit public Java Basics - Anfänger-Themen 4
NaZuRe Geld(Wert) von der public static void main in die public static void Blackjack Java Basics - Anfänger-Themen 2
S public static boolean Java Basics - Anfänger-Themen 4
Vamecruft Compiler-Fehler public static void zu static String ändern Java Basics - Anfänger-Themen 2
D public ArrayList(Collection<? extends E> c); Java Basics - Anfänger-Themen 2
J Methoden Methoden einer public class AutoCompleteTextField verwenden Java Basics - Anfänger-Themen 14
G Klassen Mit fremder Klasse auf public Methode zugreifen Java Basics - Anfänger-Themen 23
C Was macht `public class ClassName<T extends Comparable<T>>`? Java Basics - Anfänger-Themen 14
C Methoden Vererbung private Attribute/public Methoden Java Basics - Anfänger-Themen 4
Javafan01 Dateiname und Public class Java Basics - Anfänger-Themen 4
C Methoden Unterschied zwichen public int, public static int und public static void Java Basics - Anfänger-Themen 2
A Methoden Unterscheid zwischen public und ohne Java Basics - Anfänger-Themen 9
J Klasse wird als private erkannt obwohl sie public deklariert ist Java Basics - Anfänger-Themen 3
J Frage zu: public static void main (String[]args) Java Basics - Anfänger-Themen 1
L RSA Public Key einlesen Java Basics - Anfänger-Themen 0
K Public Attribute oder getter - funktioniert leider beides hier nicht Java Basics - Anfänger-Themen 5
V Was bewirkt das Schlüsselwort extends in Verbindung mit class bzw. public class ? Java Basics - Anfänger-Themen 2
I Methoden public void paintComponent (Graphics g) Java Basics - Anfänger-Themen 4
M public static int in ActionListener Java Basics - Anfänger-Themen 6
L Was genau macht "public static void" ? Java Basics - Anfänger-Themen 12
B ja ja schon wieder einer mit einer public static void main(string[] args) Frage... Java Basics - Anfänger-Themen 8
D neue public static class variablen in array speichern? Java Basics - Anfänger-Themen 6
T Variablen Getter-Setter vs Public Variable? Java Basics - Anfänger-Themen 5
K modifier public Java Basics - Anfänger-Themen 3
T Wie vergleiche ich die Jahre aus der while Schleife die in ( public class) fuer cbx geschrieben sind Java Basics - Anfänger-Themen 5
W Klassen Fehler bei public void setLabelText(JLabel label, String text) Java Basics - Anfänger-Themen 11
D Klassenvariablen standardmäßig private oder public? Java Basics - Anfänger-Themen 2
T Java Code Hilfe - public void xxx() Java Basics - Anfänger-Themen 2
T public void - Problem Java Basics - Anfänger-Themen 10
B public/private nur 1x schreiben Java Basics - Anfänger-Themen 3
R public static void Rückgabe Java Basics - Anfänger-Themen 5
P Compiler-Fehler public static void main, Grundloses Problem Java Basics - Anfänger-Themen 4
N Java UML: Eine Frage zu public-Variablen Java Basics - Anfänger-Themen 19
P Erste Schritte public oder static oder wie? Java Basics - Anfänger-Themen 7
T public-private problem Java Basics - Anfänger-Themen 5
J public enum? in Java Java Basics - Anfänger-Themen 9
C Erste Schritte felder, die public final sind Java Basics - Anfänger-Themen 6
B main methode ohne public Java Basics - Anfänger-Themen 5
V public Variablen vs Getter + Setter Java Basics - Anfänger-Themen 4
S Frage zu public static Java Basics - Anfänger-Themen 29
J "public int x" - Zugriff von anderer Klasse (selbes Package) nicht möglich?! Java Basics - Anfänger-Themen 4
E Methoden public static void main(String[] args) Java Basics - Anfänger-Themen 9
O Was bedeutet public class value? Java Basics - Anfänger-Themen 3
I Methoden Problem If/Else; Public Void Java Basics - Anfänger-Themen 6
K Kapselung public / private verständis problem Java Basics - Anfänger-Themen 17
S Warum sind Attribute der Klasse java.awt.Point public? Java Basics - Anfänger-Themen 3
K OOP Attribute von Klasse in die public class übertragen? Java Basics - Anfänger-Themen 7
F public variable erstellen, & darauf zugreifen Java Basics - Anfänger-Themen 12
B Variablen Variablen in try / catch "public" machen? Java Basics - Anfänger-Themen 3
X enum Fehlermeldung "The public type Day must be defined in its own file" Java Basics - Anfänger-Themen 8
B Public boolean einfügen Java Basics - Anfänger-Themen 12
N public class -> public method -> variable private? Java Basics - Anfänger-Themen 10
R jLabel lässt sich nicht public setzen?? Java Basics - Anfänger-Themen 15
Hamstinator public static. Gute Idee? Java Basics - Anfänger-Themen 6
-horn- public static double[][][] NAME() nur per RETURN Wertrückgabe möglich? Java Basics - Anfänger-Themen 20
S Public-Klassen und Dateien Java Basics - Anfänger-Themen 5
StickToFreak Fehler mit public class Java Basics - Anfänger-Themen 13
K konstruktur als public definieren Java Basics - Anfänger-Themen 11
StickToFreak public class problem ôÔ Java Basics - Anfänger-Themen 3
G field public/private wann Java Basics - Anfänger-Themen 11
H eine als public deklariete Variable wird nicht gefunden Java Basics - Anfänger-Themen 6
T Konstruktor mit oder ohne public-Bezeichner? Java Basics - Anfänger-Themen 4
T Geht so was? public void verkaufe (<X implements Produkt& Java Basics - Anfänger-Themen 8
P immer "public class". ? Java Basics - Anfänger-Themen 4
J Public / Private Keys speichern bzw. lesen? Java Basics - Anfänger-Themen 8
A kein zugriff auf variable trotz public? Java Basics - Anfänger-Themen 3
C public static void main(String[] args) Java Basics - Anfänger-Themen 6
D Frage zu public static void main. Java Basics - Anfänger-Themen 4
J public class Java Basics - Anfänger-Themen 15
G Vor oder hinter public static void main. ? Java Basics - Anfänger-Themen 8
G (Anfängerproblem) Problem mit dem Aufruf von public-Methoden Java Basics - Anfänger-Themen 3
O Unterschied zwischen static und public Java Basics - Anfänger-Themen 2
D Zugriff auf attribut anderer Klasse privat/public? Java Basics - Anfänger-Themen 9
B Warum manchmal public class und manchmal nur class Java Basics - Anfänger-Themen 3
A Javadoc nur bei public Klassen? Java Basics - Anfänger-Themen 3
T rotes herz public void paint(Graphics g) Java Basics - Anfänger-Themen 2
G Was ist public static void main(String[] args)? Java Basics - Anfänger-Themen 12
P public enum ";"expected Java Basics - Anfänger-Themen 7
G <identifier> expected bei public void final 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
R public Klassen Java Basics - Anfänger-Themen 12
I public Verständnisfrage Java Basics - Anfänger-Themen 5
S private public Java Basics - Anfänger-Themen 5
R private / public Frage Java Basics - Anfänger-Themen 7
F Warum sind Interface-Methoden public? Java Basics - Anfänger-Themen 19
C public void keyPressed(KeyEvent e) Java Basics - Anfänger-Themen 2
N public void und verhalten bei return Java Basics - Anfänger-Themen 2
K public boolean contains (Object obj) > true or false Java Basics - Anfänger-Themen 16
M public static void main(String... args)<- Was bedeutet das? Java Basics - Anfänger-Themen 5
A public/private/etc. Zusatz weglassen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben