Kapselung, Verständnisfrage zur Objekterzeugung

LionAge

Mitglied
Hallo zusammen,

ich lerne gerade Java und arbeite dabei unter anderem mit der Seite Java Tutorial interaktiv - Programmieren lernen mit Java
Dort habe ich nun folgende Aufgabe:

Zusammengefasst, weil auch nicht meine eigentliche Frage:
- 5 Integer-Werte einlesen und ausrechnen
- am Anfang einmalige Frage ob man jedes mal die Eingabeaufforderung lesen möchte
--> Auswertung der Frage <ja> oder <nein>
- ja oder nein einlesen

Sooo, das Programm an sich läuft, aber nur weil ich, wie ich weiß verbotener Weise einige Variablen auf public gesetzt habe. Hier erstmal der Code

Code:
public class Equalis	{

	private int sum;
	private int zahl;
	private String eingabeJaNein;
	public String antwort = "ja";
	public String optimiert;
	public int eingabeZahl = 1;
	public boolean eingabeaufforderung = true;

	Scanner scan = new Scanner(System.in);
	
	// Liest die Eingabeaufforderung ein und setzt dann die boolsche
	// Variable eingabeaufforderung auf false.
	// Vorher wird noch zur Sicherheit ein Ja, JA, Nein, oder NEIN etc.
	// mit toLowerCase() in ja oder nein umgewandelt

	public void eingabe()	{
		System.out.println("Eingabeaufforderung anzeigen: <ja> oder <nein>? ");
		eingabeJaNein = scan.nextLine();
		optimiert = eingabeJaNein.toLowerCase();
		eingabeaufforderung = false;
	}
	
	// Fordert eine Zahlenangabe ein, und liest diese dann ein und addiert sie zur Gesammtsumme

	public void zahl()	{
		System.out.println("Geben Sie die "+eingabeZahl+". Zahl ein: ");
		zahl = scan.nextInt();
		sum += zahl;
	}
	
	// Falls der Anwender keine Eingabeaufforderung lesen möchte, wird diese Methode ausgeführt

	public void ohne()	{
		System.out.println("");
		zahl = scan.nextInt();
		sum += zahl;
	}	
	
	// Gibt das Ergebnis aus	

	public void printErgebnis()	{
		System.out.println("Gesammtsumme: " +sum);
	}
	
} // Ende Klasse

Und die Testklasse mit main methode:

Code:
public class EqualisTest	{

	public static void main(String[] args)	{
		
		// Objekterzeugung
		Equalis eq = new Equalis();	
					
		// Zählschleife um die Zahl der Eingabeaufforderung zu inkrementieren
		for (eq.eingabeZahl = 1; eq.eingabeZahl < 6; eq.eingabeZahl++)	{
				
				// Solange eingabeaufforderung true ist, also nur einmal, wird die Eingabe <ja> oder <nein>    eingelesen
				if (eq.eingabeaufforderung == true)	{
					eq.eingabe();
				}
				
				// Gibt der Anwender "Ja" ein wird zahl() ausgeführt, ansonsten ohne()
				if (eq.optimiert.equals(antwort))	{
					eq.zahl();
			
				}else{
					eq.ohne();
					}	
		}
		
			eq.printErgebnis();
	}

}

Ich weiß , dass man ein Objekt, was in einer anderen Klasse genutzt wird erst erzeugt und dann mit dem Punkt-Operator aufgerufen wird. Was ich nun von euch möchte :) Warum schaffe ich es nicht die Öffentlichen Instanzvariablen private zu kriegen, zunächste dachte ich bei den String-Variablen(Objekten?) ok, String ist eine Klasse vllt liegt es daran, aber auch die Variable < public int eingabeZahl = 1; > wollte im private modus nicht über den Aufruf eq.eingabeZahl sich kompilieren lassen. Irgendwie habe ich da gerade ein Brett vorm Kopf, vllt sitze ich schon zu lange davor.

Wenn ihr noch Tipps zur Code-Schlankheit bzw. Schönheit höre ich mir das auch gerne an, kommt mir so klobig vor.

Vielen dank und n schönen Sonntag + Feiertag morgen :)
 

Saheeda

Top Contributor
Private Variablen sind nur innerhalb der Klasse selbst sichtbar. Um von anderen Klassen aus darauf zuzugreifen, brauchst du eine getMethode, welche dir diese Variablen zurückgibt.
 

LionAge

Mitglied
Stimmt, da war was ^^ also würde ich eine Methode getEingabe() schreiben um die Methhode eingabe() abzuhandeln.

Und
public int eingabeZahl = 1;
public boolean eingabeaufforderung = true;
&
public String antwort = "ja";

Sollen sich ja im Prinzip garnicht verändern, außer die bool natürlich die ich nach der ersten Verwendung auf false setze - könnte ich die dann auch als Static deklarieren?
 

Saheeda

Top Contributor
"Static" bedeutet, dass diese Variable für alle Instanzen einer Klasse dieselbe ist, im Gegensatz zu "normalen" Variablen, wovon jede Instanz eine eigene besitzt.

Du meinst wahrscheinlich eine Konstante, oder? Dafür gibts den Modifier "final".
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Lion.King Kapselung Java Basics - Anfänger-Themen 5
K Unterschied Information Hiding und Kapselung? Java Basics - Anfänger-Themen 2
M Gettter/Setter Methoden Klassenfelder kapselung und zugriff? Java Basics - Anfänger-Themen 1
T Kapselung und Zugriffsmodifizierer Java Basics - Anfänger-Themen 9
M Objektmethoden und Kapselung Java Basics - Anfänger-Themen 4
J Kapselung - Dient dazu, um nur den Coder zu "schützen"? Java Basics - Anfänger-Themen 4
T Kapselung: public-Methoden in protected-Klassen Java Basics - Anfänger-Themen 3
neurox Kapselung von Enums? Java Basics - Anfänger-Themen 3
H Sauberes GUIieren mit dem AWT | Frage zur Kapselung Java Basics - Anfänger-Themen 3
V Kapselung Java Basics - Anfänger-Themen 3
A Frage zu super, abstracte Klassen und Kapselung Java Basics - Anfänger-Themen 3
M Prinzip der Kapselung - Wie Aufruf der Methode? Java Basics - Anfänger-Themen 2
D oo -> kapselung Java Basics - Anfänger-Themen 15
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
A Verständnisfrage Java Basics - Anfänger-Themen 12
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
P Verständnisfrage: PageFactory.initElements Java Basics - Anfänger-Themen 2
R do while Schleife Verständnisfrage Java Basics - Anfänger-Themen 2
G while.next() Verständnisfrage Java Basics - Anfänger-Themen 16
Vivien Kurze Verständnisfrage zu Java Point aus java.awt.* Java Basics - Anfänger-Themen 5
C Erste Schritte Anfänger Verständnisfrage zum Compiler Java Basics - Anfänger-Themen 31
T Verständnisfrage Objekt Getter Setter Java Basics - Anfänger-Themen 102
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
Der Grütz Verständnisfrage zu Übung aus Java Kurs - Schaltjahr bestimmen Java Basics - Anfänger-Themen 2
J Verständnisfrage zu throws neben Funktionen Java Basics - Anfänger-Themen 2
TimoN11 Verständnisfrage bei Aufgabe Java Basics - Anfänger-Themen 2
P Verständnisfrage zum Mapping Java Basics - Anfänger-Themen 3
M Java Version Verständnisfrage Java Basics - Anfänger-Themen 16
M Verständnisfrage zu eine Online Aufgabe Java Basics - Anfänger-Themen 7
T Verständnisfrage zur Konsolenausgabe Java Basics - Anfänger-Themen 2
M Verständnisfrage zu Generics Java Basics - Anfänger-Themen 7
D Verständnisfrage zur Modellierung einer HDD Java Basics - Anfänger-Themen 17
W Methoden Verständnisfrage Vererbung von Methoden Java Basics - Anfänger-Themen 14
S Verständnisfrage lokale Ordnerpfade Java Basics - Anfänger-Themen 1
T Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 7
J Java Starthilfe Verständnisfrage Aufgabe Java Basics - Anfänger-Themen 2
O Anfänger, Verständnisfrage Java Basics - Anfänger-Themen 3
C Verständnisfrage zu Modulo Java Basics - Anfänger-Themen 6
C Verständnisfrage bezüglich der Do-While Schleife Java Basics - Anfänger-Themen 9
L Verständnisfrage - Speicherabbild Java Basics - Anfänger-Themen 4
melly_ Verständnisfrage zu args Java Basics - Anfänger-Themen 3
A Variablen Verständnisfrage bzgl. Variablen/Referenzen Java Basics - Anfänger-Themen 3
K Verständnisfrage eines Abschnitts Java Basics - Anfänger-Themen 6
K Rekursion Verständnisfrage Java Basics - Anfänger-Themen 19
S Modell View Controller Verständnisfrage Java Basics - Anfänger-Themen 24
J Superklassen Konstruktor Verständnisfrage Java Basics - Anfänger-Themen 1
JavaTalksToMe Erste Schritte Println-Frage (Verständnisfrage) Java Basics - Anfänger-Themen 1
R Verständnisfrage zu Objekten u. Übergabeparameter Java Basics - Anfänger-Themen 8
G Collections Verständnisfrage zur For-Each-Schleife Java Basics - Anfänger-Themen 7
b1ck Interface Verständnisfrage zum GUI mit "swing" Java Basics - Anfänger-Themen 1
kilopack15 Verständnisfrage zur Verwendung von notify() bei Threads Java Basics - Anfänger-Themen 2
G Verständnisfrage zu for-each Java Basics - Anfänger-Themen 4
DontFeedTheTroll Erste Schritte Verständnisfrage zu If-Anweisung Java Basics - Anfänger-Themen 7
K Rekursion-Verständnisfrage Java Basics - Anfänger-Themen 4
J Java Server Pages - Verständnisfrage Java Basics - Anfänger-Themen 2
Z Verständnisfrage Anfängerprogramm Java Basics - Anfänger-Themen 0
T Verständnisfrage Zuweisungs-/arithmet. Operatoren Java Basics - Anfänger-Themen 2
G Methoden Verständnisfrage zur Methoden Java Basics - Anfänger-Themen 7
Z Verständnisfrage zum Multithreading Java Basics - Anfänger-Themen 3
R OOP / Verständnisfrage zum Konstuktor (siehe code) Java Basics - Anfänger-Themen 7
gamebreiti Verständnisfrage zu contains() Java Basics - Anfänger-Themen 10
A Verständnisfrage - Koordinatenumrechnung Java Basics - Anfänger-Themen 9
J Erste Schritte Verständnisfrage im Bezug auf das (richtige) Programmieren Java Basics - Anfänger-Themen 5
M Verständnisfrage zu JUnit Tests und private Methoden Java Basics - Anfänger-Themen 3
H Verständnisfrage Array Java Basics - Anfänger-Themen 2
I Interface Verständnisfrage Interfaces (Bsp.: Enumeration) Java Basics - Anfänger-Themen 2
I Verständnisfrage zu BridgePattern, Verwedung von super() Java Basics - Anfänger-Themen 4
P Verständnisfrage Java Basics - Anfänger-Themen 3
kaoZ Best Practice Verständnisfrage Listener bei lokalen Objekten Java Basics - Anfänger-Themen 8
D Input/Output Verständnisfrage Verzeichnis-/Dateiliste erstellen & Dateikonvertierung Java Basics - Anfänger-Themen 1
S Verständnisfrage zu Anweisungen und deren Wirkung Java Basics - Anfänger-Themen 7
H Verständnisfrage für oder Anweisung Java Basics - Anfänger-Themen 8
E Threads Verständnisfrage bzgl. Threads und Sleep Java Basics - Anfänger-Themen 2
T Erste Schritte Verständnisfrage: Getter und Setter Methoden Java Basics - Anfänger-Themen 3
H Verständnisfrage zu Java-Ausgabe Java Basics - Anfänger-Themen 3
S Verständnisfrage Java Basics - Anfänger-Themen 2
N Verständnisfrage Code Java Basics - Anfänger-Themen 8
B Verständnisfrage Java Basics - Anfänger-Themen 2
H Interface Comparable Verständnisfrage Java Basics - Anfänger-Themen 6
B Verständnisfrage Codezeile Java Basics - Anfänger-Themen 7
B Verständnisfrage:Beispielprogramm BlueJ Java Basics - Anfänger-Themen 3
M Kurze Verständnisfrage zu einer Java Aufgabe Java Basics - Anfänger-Themen 12
K Erste Schritte Kleine Verständnisfrage Java Basics - Anfänger-Themen 12
R Verständnisfrage Referenzvariablen in array Java Basics - Anfänger-Themen 3
M Verständnisfrage: Objekt erzeugen u. zuweisen Java Basics - Anfänger-Themen 16
I OOP Verständnisfrage zu Singelton Pattern Java Basics - Anfänger-Themen 21
M Verständnisfrage zu JPanel Java Basics - Anfänger-Themen 3
S Verständnisfrage: Exception Gebrauch Java Basics - Anfänger-Themen 2
R Verständnisfrage NPE Java Basics - Anfänger-Themen 5
M Verständnisfrage zur Zahlenumwandlung (Dezimal-->Dual) Java Basics - Anfänger-Themen 25
P Java Objekte - Verständnisfrage Java Basics - Anfänger-Themen 9
N Verständnisfrage zu folgendem Programm Java Basics - Anfänger-Themen 2
L Grundlegende Verständnisfrage Hasmap Referenzen Java Basics - Anfänger-Themen 4
S Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 2
VfL_Freak Verständnisfrage zur Klasse "TIMER" Java Basics - Anfänger-Themen 7
P Verständnisfrage zu Instanzen/Objekten Java Basics - Anfänger-Themen 9
M Verständnisfrage im Umgang mit Map Java Basics - Anfänger-Themen 10
K Verständnisfrage zu int.length und String.length() Java Basics - Anfänger-Themen 4
G 2D Array gleichsetzen verständnisfrage Java Basics - Anfänger-Themen 2
M kleine und einfache Verständnisfrage Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben