auf private Variable durch eine Methode zugreifen

bubka

Mitglied
Hi, wie der Titel schon sagt, möchte ich auf eine private Variable durch eine Methode zugreifen.

Eine Klasse, wo sich die private Variable mit Methode befindet:
Java:
public class A{
	 private int var;

	int theMethod() {
		return var;
	}

Und die Zweite:
Java:
public class TryToAccess {
	int a;
	a= A.theMethod();
}

warum geht es nicht?
Ich habe gerade einen Kapitel gelesen, wo es um Konstruktor ging. Aber ich möchte einfach über eine Methode darauf zu greifen und es klappt einfach nicht. Leider im Buch ist es bis jetzt gar nicht beschrieben, nur, dass es halt möglich ist. Wie macht man dann so was? Danke!
 

bubka

Mitglied
ich habe noch schnell im Internet gefunden, dass es noch Getters und Setters gibt. Aber die sind im Prinzip die gleichen Methoden, wie bei mir in der ersten Klasse.
Geht es echt gar, absolut gar nicht ohne Instanzen? :noe: ich kann einfach nicht glauben... sitze gerade voll traurig.
 

Volvagia

Top Contributor
Nicht, dass ich wüsste.
Entweder brauchst und wirst auch immer nur A als Datenkapselung für diese Variable brauchen, oder du legst dir n Instanzen an, um n Container für n verschiedene Variablen zu erzeugen.
 

maske

Mitglied
Hi bubka,

so wie Du das möchtest, geht es leider nicht.
Die von Dir deklarierte Variable var ist eine Instanzvariable (gleiches gilt auch für die Methode) und ist somit auch nur über eine existierende Instanz der Klasse zugreifbar.

Was Du machen kannst, ist die Variable und die Methode jeweils als Klassenvariable bzw. -methode zu deklarieren und somit in der gewünschten Art und Weise zugreifbar zu machen. Dabei müssen sowohl die Variable, als auch die Methode als static gekennzeichnet werden.

Beachte dabei aber, dass sich nun alle Instanzen der Klasse A ein und dieselbe Variable teilen.

Java:
public class A {	
	private static int var = 0;
	
	public static int getVar() {
		return var;
	}
}
[/Java]

VG
maske
 

bubka

Mitglied
jo, mit static hat bei mir auch geklappt, aber ich würde gern die Finger von static erst weghalten... habe viel Negatives darüber gehört, dass man mit static sehr vorsichtig umgehen muss.
Schade...
Danke für die schnelle Hilfe, Guys. thumb up
 

Landei

Top Contributor
Das ist gelinde gesagt Quatsch. [c]static[/c] bedeutet einfach für Variablen etwas ganz anderes als eine normale, es gibt die Variable pro Klasse nur einmal (auch wenn man von jeder Instanz darauf zugreifen kann). Einfachstes Beispiel ist ein Zähler:

Java:
public class Car {
   public static int counter = 0;

   public Car() {  
       counter++; //Zähler wird erhöht
   }
}

...
new Car();
new Car();
new Car();
System.out.println(Car.counter); //3

Würde man das [c]static[/c] hier weglassen, hätte jedes Auto seine eigene Variable (die nach dem Erhöhen gleich 1 wäre), und man könnte nicht über [c]Car.counter[/c] auf diese zugreifen, sondern nur über die jeweilige Auto-Instanz.

Die
Code:
static
-Variable klebt also nicht an einem Auto, sondern an der Autofabrik (schließlich fallen ja dort die Luftballons von der Decke, werden die Millionste Klapperkiste vom Band rollt)

Das negative an [c]static[/c] ist, dass es einen nicht objektorientierten Stil fördert, und der Code deshalb unflexibel werden kann, aber das ist momentan für dich eher unwichtig.
 
Zuletzt bearbeitet:

maske

Mitglied
Beachte dabei aber, dass sich nun alle Instanzen der Klasse A ein und dieselbe Variable teilen.
Dabei fällt mir auf, dass der Satz oben von mir sehr ungeschickt formuliert war.
Natürlich gehört die Variable zur Klasse und nicht zu den Instanzen.
 
Zuletzt bearbeitet:
T

trööhööt

Gast
jo, mit static hat bei mir auch geklappt, aber ich würde gern die Finger von static erst weghalten... habe viel Negatives darüber gehört, dass man mit static sehr vorsichtig umgehen muss.
Schade...
Danke für die schnelle Hilfe, Guys. thumb up

naja ... static ist jetzt nichts negatives oder etwas womit man vorsichtig umgehen muss ... es ist halt nur nicht wirklich im sinne der objektorientierten programmierung sondern geht eher in die richtung prozedual/funktional ...

es gibt einige dinge die wären ohne static überhaupt nicht machbar ... z.b. Singleton / Factory oder auch ein einfacher "Helper" ... es ist also an einigen stellen schon sinnvoll und sogar notwendig ... sollte aber nicht über das gesamte programm verteilt sein ...

persönlich bin ich der meinung das es in einem programm , mit ausnahme der oben angespielten sonderfälle , nur ein einziges STATIC im gesamten programm geben sollte : public static void main(String[]) ... und das funktioniert auch zu 99% immer ... es sei denn man muss im sinne von clean-code das 1% was man sonst mehrfach schreiben würde als "Helper" auslagern
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Private Variable Java Basics - Anfänger-Themen 2
J Vererbung Zugriff auf private Variable Java Basics - Anfänger-Themen 10
A Variablen lokale Variable als private? Java Basics - Anfänger-Themen 3
N public class -> public method -> variable private? Java Basics - Anfänger-Themen 10
berliner Klassen Vererbung und Zugriff auf innere private Variable Java Basics - Anfänger-Themen 22
N private variable vom typ einer klasse Java Basics - Anfänger-Themen 20
M Jede Variable als private, protected etc. deklarieren? Java Basics - Anfänger-Themen 7
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
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
A private string array Java Basics - Anfänger-Themen 5
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
K Protected und Private Deklaration Java Basics - Anfänger-Themen 8
F Im Konstruktor mit Settern auf private Attribute zugreifen - oder nicht? Java Basics - Anfänger-Themen 18
B Kapselung Klasse private, Konstruktor protected Java Basics - Anfänger-Themen 10
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
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
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
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
G Public ,private,protected Java Basics - Anfänger-Themen 1
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
U public, private, protected und "default access" - Java Basics - Anfänger-Themen 14
T private final String oder final String? Was ist richtig? Java Basics - Anfänger-Themen 4
U was macht "private" ? :) Java Basics - Anfänger-Themen 7
G private methode wird aus anderer klasse aufgerufen? Java Basics - Anfänger-Themen 3
megachucky wie bekomm ich ein private attribut aus einer andren klasse? Java Basics - Anfänger-Themen 18
H private anstatt public Java Basics - Anfänger-Themen 2
H public und private Java Basics - Anfänger-Themen 5
A Public/Private und wie importieren? Java Basics - Anfänger-Themen 13
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste in Variable speichern Java Basics - Anfänger-Themen 6
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
E Variable von 1. Fenster an 2. Fenster übergeben. Java Basics - Anfänger-Themen 7
T Variable in Schleife deklarieren, Speicherplatz, Garbage Collector Java Basics - Anfänger-Themen 10
T Datum als Variable wert Java Basics - Anfänger-Themen 4
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
Say super.methode / super.variable und super(variable) Java Basics - Anfänger-Themen 2
M variable in anderer funktion aufrufen Java Basics - Anfänger-Themen 10
N Was Passiert mit dem Namen einer Variable, wenn man diese einer Liste Hinzufügt Java Basics - Anfänger-Themen 16
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26
U Wie mache ich die Variable xyz eindeutig/unique? Java Basics - Anfänger-Themen 20
JordenJost char variable funktioniert irgendwie nicht a+b ergibt nicht à Java Basics - Anfänger-Themen 4
M Variable Felderanzahl Java Java Basics - Anfänger-Themen 10
T Variable durch Action Listener ändern Java Basics - Anfänger-Themen 2
stormyark Fehler beim überschreiben einer Variable Java Basics - Anfänger-Themen 1
P Zähler Variable für mehrere Objekte Java Basics - Anfänger-Themen 6
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben