Warum ist meine private porperty public?

Thallius

Top Contributor
Hi,

ich habe folgendes Konstrukt und verscheibe das wegen der nervigen Werbung mal absichtlich etwas nach unten damit man es besser lesen kann.

.
.
.
.
.
.
.
.
.
.
.


Java:
class SystemIdPanel extends JPanel
{
	private JTable systemIdTable;
	private SystemIDTableListModel tableModel;

	public SystemIdPanel()
	{
                 // hier wird das Table erzeugt und configuriert.
                ...
		this.systemIdTable.addMouseListener(new tableMouseAdapter(this,0));
                ...
        }

	class SystemIDTableListModel extends AbstractTableModel 
	{
		private ArrayList<SystemIdEntry> list;
		private ArrayList<SystemIdEntry> filterList;
		private String filterText;
                ...
        }

	private class tableMouseAdapter extends MouseAdapter
	{
		SystemIdPanel panel=null;
		
		public tableMouseAdapter(SystemIdPanel p, int type)
		{
			this.panel=p;
		}
		
		@Override
		public void mouseClicked(MouseEvent e) 
		{
			if (e.getClickCount() == 2)  // Double click
			{
				int row=panel.systemIdTable.getSelectedRow();
				if(row>=0)
					row=panel.systemIdTable.convertRowIndexToModel(panel.systemIdTable.getSelectedRow());

				SystemIdEntry entry=this.panel.tableModel.list.get(row);

Warum kann ich hier in der letzten Zeile auf die private property list zugreifen? Liegt es daran das es eine nested class ist?

Gruß

Claus
 
Zuletzt bearbeitet:

coco07

Bekanntes Mitglied
Die Klasse ist ja selbst auch eine Instanz deiner Top Level Klasse. Deklariere die Klasse als Static und du hast das von dir gewohnte Ergebnis aus c++
 

max40

Bekanntes Mitglied
Hier ein Beispiel:
Java:
public class Test {
	
	private final String sTest = "Hallo";
	
	
	class TestIntern{
		void test(){
			System.out.println(sTest); // wie du es hast, keine Fehlermeldung!
		}
	}
}

class TestExtern{
	void test(){
		System.out.println(sTest);  // <-- sTest cannot be resolved to a variable
	}
}
 

Tobse

Top Contributor
Das ist dann aber eine Eigenart von Java. In C++ kann ich in einer Quelldatei so viele Klassen erstellen wie ich lustig bin.

Ja, es ist eine der Grundkonventionen von Java: 1 Klasse, 1 Datei; 1 Datei, 1 Klasse. Damit weiss man direkt, wo man suchen muss.
Du verwendest eine innere Klasse. Und es ist per Definition so, dass innere Klassen alle Eigenschaften und Methoden ihrer Parents sehen.

Galileo Computing :: Java ist auch eine Insel – 8 Äußere.innere Klassen Abschnitt "Zugriffsrechte" (relativ weit unten), erster Satz:
Eine innere Klasse kann auf alle Attribute der äußeren Klasse zugreifen.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
T Meine Frage lautet wie ich 2 CSV Dateien miteinander in Java verbinde und Spalten die zueinander gehören durch den gleichen Key zusammen ausgebe? Allgemeine Java-Themen 5
Thallius Ist meine static Helper Class Thread save? Allgemeine Java-Themen 9
X Wie kann ich meine Stdlib in Intelliji benutzen? Allgemeine Java-Themen 3
B Wie kann ich meine Pläne am besten umsetzen? Allgemeine Java-Themen 2
B Suche nach einem Testprogramm für meine BA Allgemeine Java-Themen 0
V Threads Weshalb funktionieren meine Threads nicht? Allgemeine Java-Themen 2
A Eine Spezifikation für meine Bachelorarbeit! Allgemeine Java-Themen 3
B Schnittstelle von Facebook zu Java(Eclipse) für meine Internetseite Allgemeine Java-Themen 20
S import meine.eigenes.import Allgemeine Java-Themen 6
Luk10 Factory auf meine Situaion anwendbar? Allgemeine Java-Themen 14
S HTML => DOM - Welcher Parser für meine Zwecke? Allgemeine Java-Themen 3
S ThreadPoolExecutor: wie stelle ich fest dass meine Threads im Pool mit ihrer Arbeit fertig sind? Allgemeine Java-Themen 3
D Ich möchte meine *.java Dateien in Applets "umschreiben. Aber wie? Allgemeine Java-Themen 3
V Math.log auf meine Art zu ungenau Allgemeine Java-Themen 15
B log4j löscht meine Logdateien Allgemeine Java-Themen 2
E JFreeChart jars mit in meine Jar packen Allgemeine Java-Themen 6
T NetBeans: Ist meine Konfiguration falsch? Allgemeine Java-Themen 7
M Windows: Start --> Ausführen --> [url]http://meine.url.com[/url] Allgemeine Java-Themen 3
J Was ist genauer: Thread.sleep() oder meine Variante? Allgemeine Java-Themen 64
E Was ist ein gutes Design fuer meine Programm? Allgemeine Java-Themen 3
S Ich verstehe meine Java-Version nicht Allgemeine Java-Themen 6
P meine selectAll methode makiert text nicht? Allgemeine Java-Themen 9
S Paar Infos für meine Dokumentation. Allgemeine Java-Themen 5
H Java mag meine Klasse nicht, Identifier expected Allgemeine Java-Themen 6
T Soll ich meine Software als freeware zum download geben? Allgemeine Java-Themen 15
D Laufen meine alten progs auf java 5 noch? Allgemeine Java-Themen 7
P Welches JRE braucht meine Applikation? Allgemeine Java-Themen 3
B Meine Hausaufgaben... Allgemeine Java-Themen 14
S meine java laufschrift funzt auf meinem NB teilweise schrott Allgemeine Java-Themen 2
temi Private statische Hilfsmethoden Allgemeine Java-Themen 33
G Public oder Private oder Protected Sinn Allgemeine Java-Themen 14
J private and arrays Allgemeine Java-Themen 2
J private static final String variable Allgemeine Java-Themen 8
Thallius Wie verstecke ich meinen private Key am besten im Code? Allgemeine Java-Themen 10
N Vererbung Static & private fields - Nicht ganz einfach? Allgemeine Java-Themen 4
L Private Key aus KeyDatei extrahieren Allgemeine Java-Themen 2
C Probleme mit dem Zugriff auf private Methode per reflection Allgemeine Java-Themen 2
C Zugriff auf private Methode per reflection geht nicht mehr Allgemeine Java-Themen 3
G Testcases mit Junit auf private-Methode Allgemeine Java-Themen 7
S private ignorieren Allgemeine Java-Themen 7
Z aus private List<???> list eintrag löschen Allgemeine Java-Themen 4
P Private und public Allgemeine Java-Themen 2
tfa Unit-Tests für private Methoden Allgemeine Java-Themen 25
S In Subklasse auf private Variablen zugreifen Allgemeine Java-Themen 4
A Private-Wert eines Objekts auslesen Allgemeine Java-Themen 9
F Javadoc: @value tag nicht für private fields? Allgemeine Java-Themen 11
G per Reflection auf private Klassenattribute zugreifen? Allgemeine Java-Themen 9
M per reflection private attributsnamen auslesen Allgemeine Java-Themen 3
reibi Aufruf eines private Konstruktors Allgemeine Java-Themen 7
J Java Private Edition? Allgemeine Java-Themen 7
M Stärkerer access-modifier als "private"? Allgemeine Java-Themen 17
F Ein interface und private Methoden? Allgemeine Java-Themen 13
S private Vars in abstrakter Klasse nicht in der Unterklasse? Allgemeine Java-Themen 6
S private Instanzvaribalen bei "Innerer-Vererbung" Allgemeine Java-Themen 9
T ungewollter Zugriff auf private Variablen? Allgemeine Java-Themen 3
S private Methoden benutzen Allgemeine Java-Themen 11
G private vs. public JRE Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben