boolean bei Setter und getter methoden

nata

Bekanntes Mitglied
Hallo Leute,

ich habe klasse registrierte uster wo ich als lunde und admin als boolean werte abspeichere und habe eine frage ob es so korrekt wäre
Java:
public class RegUser {
	
	private boolean kunde;
	private boolean admin;
	
	public void setKunde(boolean kunde){
		this.kunde = kunde;
	}
	
	public void setAdmin(boolean admin){
		this.admin = admin;
	}
	
	public boolean isAdmin(){
		return true;
	}
	

	public boolean isKunde(){
		return true;
	}
}
es ist kleine ausschnitt. natürlich ist da drinnen namen, adressen ...

ich habe noch eine frage, es ist eine gruppenarbeit wo es um eine Alpenreise geht und damit man reise bucht muss man registriert sein und ich denke dass registrirte user machen wir als abstrakte klasse und admin und kunde als unterklasse.
was denkt ihr? wie ist besser?

danke vielmals
Nata
 

nrg

Top Contributor
hat kunde und admin eine und/oder oder eine oder beziehung? wenn jemand sowohl admin als auch kunde sein kann, macht es so sinn. Wenn der RegUser automatisch Kunde ist, sobald isAdmin false liefert, kannst du dir einen davon sparen. Hoffe das ist verständlich :).

Registrierte User könnte ein Interface oder eine Klasse sein. Auf's Erste hört sich da also dein Vorhaben für mich plausibel an ;)
 

nata

Bekanntes Mitglied
also doch keine Abstrakte klasse. Ich wollte damit bei kunde und admin boolean wert vermeiden wo ich nicht weiß wie ich isAdmin und isKunde implementieren soll ;)
 

nata

Bekanntes Mitglied
bei mir schaut der aktuelle code so aus. überprüfungen habe ich gelöscht, damit der code übersichtlicher ist. ich komme nicht dazu wie ich isKunde und isAdmin implementiere. kann mir jemand tipp geben?brauche ich noch ein atributt dazu?

Java:
import java.util.Date;

public class RegistrierterUser {

	private String vorname;
	private String nachname;
	private String mail;
	private String svnr;
	private boolean kunde = true;
	private boolean admin = true;
	private Date gebDat;

	public RegistrierterUser(String vorname, String nachname, String mail,
			String svnr, boolean kunde, boolean admin, Date gebdat) {
		setAdmin(admin);
		setGebDat(gebdat);
		setKunde(kunde);
		setMail(mail);
		setNachname(nachname);
		setSvnr(svnr);
		setVorname(vorname);
	}
	
	public void setVorname(String vorname) {
		this.vorname = vorname;
		
	}
	
	public void setNachname(String nachname) {
		
		this.nachname = nachname;
		
	}
	
	
	public void setMail(String mail) {
		
		this.mail = mail;
		
	}
	
	public void setSvnr(String svnr){
		this.svnr = svnr;
		
	}
	
	public String getSvnr(){
		return svnr;
	}
	
	public void setGebDat(Date gebDat) {
		
		this.gebDat = gebDat;
	}
	
	public String getVorname(){
		return vorname;
	}
	
	public String getNachname(){
		return nachname;
	}
	
	public String getMail(){
		return mail;
	}
	
	public Date getGebDat(){
		return gebDat;
	}
	
	public void setKunde(boolean kunde){
		this.kunde = kunde;
	}
	
	public void setAdmin(boolean admin){
		this.admin = admin;
	}
	
	public boolean isKunde(){

		return true;
	}
	
	public boolean isAdmin(){
		return true;
	}
	
	
	public String toString(){
		if(isAdmin()){
			return "Admin mit " +   vorname + " " + nachname + " " + mail +" " + svnr + " "+ gebDat;
			
		}
		return "Kunde mit " + vorname + " " + nachname + " " + mail +" " + svnr + " "+ gebDat;
		
	}

}

danke vielmals
nata
 

nata

Bekanntes Mitglied
ich weiß, wenn er das nicht gesagt hätte wurde mir erst später auffallen, dass ich fehler hatte. ich wusste nicht wie ich das anderes implementieren sollte. habe gedacht, dass ich noch eine zusätzliche atributt für admin brauche

ich bin euch sehr sehr dankbar
ihr seid alle Spitzen
nata
 

tfa

Top Contributor
Kann denn ein RegistrierterUser gleichzeitig Admin und Kunde sein?
Falls nicht, sollte man das Design eventuell noch umbauen, z.B. durch ein Attribut, das die User-Rolle angibt.
 

nata

Bekanntes Mitglied
ja kann sein aber kunde kann nicht admin sein. soll ich trotzdem umbauen?

was meinst du mit durch ein Attribut, das die User-Rolle angibt.?
 

tfa

Top Contributor
Zum Beispiel so mit einem enum:
Java:
public enum Rolle { KUNDE, ADMIN }

------

public class RegistrierterUser {
 
    private String vorname;
    private String nachname;
    private String mail;
    private String svnr;
    private Rolle rolle = Rolle.KUNDE;

   [...]

    public boolean isKunde() {
         return this.rolle == Rolle.KUNDE;
    }

    public boolean isAdmin() {
         return this.rolle == Rolle.ADMIN;
    }
So hat jeder User immer genau eine Rolle.
 

nrg

Top Contributor
häää?? das ist doch ein widerspruch in sich ;). wenn kunde nicht admin sein kann, dann kann auch admin nicht kunde sein.
Wenn es jetzt nur die 2 Zustände gibt und einer davon zwingend erforderlich ist, dann ist jeder RegUser entweder Kunde oder Admin. seh ich das richitg??

also mach einfach isKunde, boolean kunde und setKunde weg. Dann hast du nurnoch isAdmin, boolean admin und setAdmin. Wenn isAdmin dann false liefert ist er automatisch Kunde. Ansonsten ist er halt Admin :)

edit: bzw s. Vorposter. Zwei Zustände lässt sich noch mit einem Boolean abbilden. Bei > 2 auf jedenfall enums nehmen.
 

nata

Bekanntes Mitglied
mein user case schaut so aus wie im anhang ist. denkt ihr immernoch, dass ich auf richtigen weg bin?
 

Anhänge

  • usecase.odt
    53,5 KB · Aufrufe: 8

nata

Bekanntes Mitglied
wenn ich sagen wurde dass admin auch kunde sein kann. also admin kann auch buchen , aber kunde kann nicht admin sein. wie sollte ich vorgehen?

danke für euren tollen Tipp
 
Zuletzt bearbeitet:

Andi_CH

Top Contributor
Ich hab den Use Case (hat nichts mit user zu tun) mal angeschaut.

Ein Admin ist kein Kunde und umgekehrt die haben keine gemeinsamen Aufgaben zu erledigen.

Wenn der Mensch XY der Admin ist auch noch Kunde ist (Der Sysdamin kann ja möglicherweise im eigenen Geschäft einkaufen) wechselt er die Rolle und loggt sich mal als Kunde und mal als Admin ein.
(Actors sind nicht Menschen, sondern Aufgaben, die z.B. von Menschen wargenommen werden)

Ein "Kunde" ist auch ein "Registrierter User" und dieser ist ein "User" - das zeigen die Vererbungspfeile
Ein Admin ist weder noch - er ist nicht mal user, sondern eine ganz eigene Klasse - hm, ich würde das allerdings schon so implementieren, dass der Admin auch ein User ist - die Gemeinsamkeiten sind schon vorhanden (Name, Login, Passwort .....), aber er ist kein Kunde

Im Code würde das heissen, dass du sicher nur eine Statusvariable hast:

z.B. userStatus und die kann den (enum) Wert "Kunde" oder "Admin" annehmen.
Das wäre auch mit einem boolean (z.B. isAdmin) möglich, ist aber nicht optimal, falls das mal erweitert würde
Ein enum ist besser, denn da lassen sich jederzeit zusätzliche Werte anfügen. (Vielleicht "VIP-Kunde", "unerwünschter Kunde" :D oder ähnliches)

Möglich wäre auch für Kunde und Admin unabhängige Klassen zu schreiben, die aber von "user" bzw "Registrierter User" abgeleitet sind

Alles unklar? Frag einfach wieder - vielleicht habe ich auch kleine Überlegungsfehler drin - ist ja immer irgendwie ein Schnellschuss wenn man hier antwortet ;-)
 
Zuletzt bearbeitet:

Andi_CH

Top Contributor
Hm - Korrektur: (ein Kollege hat mir gerade über die Schulter geschaut ;-) )

Ein Admin ist nach diesem use Cas auch kein User. Ein User kann "suchen", ein Admin nicht.

Also keine Gemeinsamkeiten!
 

nata

Bekanntes Mitglied
du bist so toll. Ich habe mein usecase nochmal angeschaut und anscheinend haben kollgen noch was verändert. Ich werde am abend nochmal mit dennen besprächen und nochmal posten

danke danke vielmals
 

Andi_CH

Top Contributor
Dieses Diagram ist noch meilenweit davon entfern ist, implementiert werden zu können!

Ausgehend von diesem Diagramm müssen erst einmal Klassendiagramme gezeichnet werden und ich habe noch NIE ein Klassendiagramm gesehen in dem einer der Actors als Klasse aufgetaucht ist - ich habe auch noch nie eines gesehen in dem die Actors irgendwie eine Beziehung zueinander hatten.

Was ich damit sagen will: Deine Kollegen haben einfach ein anderes Verständnis von UML Diagrammen als ich, also musst du die fragen.

Aus diesem Grund kann niemand sagen was du implementieren musst und was nicht.

-- So zum coden.

Wenn wir als mal die Denkweise deiner Kollegen annehmen und die Acotrs als Klassen sehen brauch ich gar keinen Aufzählungstyp und auch kein Flag - ich brauche nur Klassen.

Java:
class User {}

class RegistrierterUser extends User {}

class Kunde extends RegistrierterUser {}

class Admin{}

und wenn sich nun jemand einloggt, weiss das System um wen es sich handelt und instanziert das entsprechende Objekt ...
 

Andi_CH

Top Contributor
wenn ich sagen wurde dass admin auch kunde sein kann. also admin kann auch buchen , aber kunde kann nicht admin sein. wie sollte ich vorgehen?

danke für euren tollen Tipp

Also nochmals:
Das einzige was der Admin kann ist "Tour anlegen" - mehr kann der nicht!
Er darf also weder User noch sonst was als Vaterklasse haben.

Der User kann suchen und sonst nichts

Der RegistrierteUser kann buchen, anschauen und account bearbeiten - und natürlich suchen, weil er das vom user erbt.

Der Kunde kann eine Tour reservieren und alles was der RegistrierteUser kann.
 

nata

Bekanntes Mitglied
@ Andi_CH : Aus diesem Grund kann niemand sagen was du implementieren musst und was nicht.

ich studiere noch und habe sehr geringe erfahrung. also du kannst mir nichts falsches sagen als ich mache ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Setter Methode von Boolean Java Basics - Anfänger-Themen 11
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
Zentriks Hilfe zu Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 5
Thomas06 Wie kann man mithilfe von boolean herausfinden ob eine zahl durch 5 und 7 teilbart ist ? Java Basics - Anfänger-Themen 7
C Java boolean Code läuft nicht Java Basics - Anfänger-Themen 5
xaerez Threads Boolean Wert verändert sich nicht Java Basics - Anfänger-Themen 5
xaerez Threads Boolean Wert verändert sich nicht Java Basics - Anfänger-Themen 4
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
B Rückgabewert boolean Java Basics - Anfänger-Themen 8
J Compiler-Fehler Harshadzahlen mit Boolean Java Basics - Anfänger-Themen 4
J boolean aufgabe Java Basics - Anfänger-Themen 9
A Boolean Java Basics - Anfänger-Themen 5
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
J Boolean[] teilen Java Basics - Anfänger-Themen 13
S public static boolean Java Basics - Anfänger-Themen 4
R Boolean Methode Rückgabewert if() Java Basics - Anfänger-Themen 1
G Rekursive Methode liefert augenscheinlich keinen boolean-Wert zurück. Java Basics - Anfänger-Themen 4
kazzam94 Methode soll Array von Boolean zurückgeben Java Basics - Anfänger-Themen 5
L Überschriebene Boolean Statements Java Basics - Anfänger-Themen 2
L boolean-Abfrage enumeration Java Basics - Anfänger-Themen 3
A Ausgabe mit boolean Java Basics - Anfänger-Themen 3
R Boolean value ohne Kontrollstrukturen ändern Java Basics - Anfänger-Themen 5
F boolean stellt sich auf true Java Basics - Anfänger-Themen 15
V Boolean Wert nicht richtig erkannt Java Basics - Anfänger-Themen 4
Kirby.exe ArrayOutOfBoundsException bei boolean Array Java Basics - Anfänger-Themen 19
C Ganzzahlige Werte in Boolean ausgeben und überprüfen ob Primzahl oder nicht, wenn es keine Primzahl ist soll es die Primfaktorzerlegung ausgeben Java Basics - Anfänger-Themen 4
I converting boolean Array to String Array Java Basics - Anfänger-Themen 10
C Java Boolean reagiert nicht Java Basics - Anfänger-Themen 18
A Alle true Werte eines boolean Arrays herausfiltern Java Basics - Anfänger-Themen 19
G Ratlosigkeit zur Aufgabe im Anhang (boolean, equals.) Java Basics - Anfänger-Themen 20
F Boolean Methode Wert ausgeben. Java Basics - Anfänger-Themen 2
K Boolean in einer Methode um 2 Objekte zu vergleichen Java Basics - Anfänger-Themen 12
K Boolean in einer erstellten Klasse verwenden Java Basics - Anfänger-Themen 14
X Erste Schritte boolean wert ändert sich nicht? Java Basics - Anfänger-Themen 6
W Problem mit dem Wert von boolean-Variable Java Basics - Anfänger-Themen 3
P Array Sortieren mit boolean? Java Basics - Anfänger-Themen 33
A Boolean in String Java Basics - Anfänger-Themen 2
S Operatoren Boolean Vergleichsoperator Java Basics - Anfänger-Themen 7
Queiser Super boolean Java Basics - Anfänger-Themen 11
E ISBN Nummer mit boolean Java Basics - Anfänger-Themen 5
W In Methode boolean array zurückgeben Java Basics - Anfänger-Themen 3
B Math.random mit Boolean array? Java Basics - Anfänger-Themen 17
Z Boolean Abfrage in einer for each Schleife Java Basics - Anfänger-Themen 2
T Methoden Boolean wird nicht gesetzt Java Basics - Anfänger-Themen 1
H boolean Array Problem Java Basics - Anfänger-Themen 7
S boolean Wert von mehreren int Möglichkeiten abfragen ? Java Basics - Anfänger-Themen 4
J Problem mit Boolean bei Funktion! Java Basics - Anfänger-Themen 5
O boolean Array Frage! Java Basics - Anfänger-Themen 4
? Methoden Boolean Wert vergleichen und einlesen Java Basics - Anfänger-Themen 1
M Erste Schritte while boolean=false läuft nur bei true??? Java Basics - Anfänger-Themen 23
D Boolean Array initialisieren Java Basics - Anfänger-Themen 4
M Datentypen Byte, Float und Boolean Java Basics - Anfänger-Themen 13
A Problem beim Deklarieren von einem BOOLEAN Java Basics - Anfänger-Themen 4
W Interpreter-Fehler boolean nur eins darf wahr sein Java Basics - Anfänger-Themen 11
G Wie kann man den Erfolg einer Zuweisung als Boolean Wert verwenden? Java Basics - Anfänger-Themen 12
K Problem mit Methode(Array,Boolean,ForSchleife) Java Basics - Anfänger-Themen 6
V Methode erstellen für ein Boolean Array Java Basics - Anfänger-Themen 13
T Boolean by Reference Java Basics - Anfänger-Themen 6
L Wertebereich von boolean Java Basics - Anfänger-Themen 4
D Erklärung static boolean Java Basics - Anfänger-Themen 6
T Eine String Matrix erstellen die eine boolean Funtion verwendet Java Basics - Anfänger-Themen 10
J Datentypen Boolean Refferenz Objekt Java Basics - Anfänger-Themen 2
A boolean Methode ohne If und else Java Basics - Anfänger-Themen 1
fLooojava Laufender Thread | Boolean ändern Java Basics - Anfänger-Themen 9
T Boolean Missing return Statement?! Java Basics - Anfänger-Themen 2
A Boolean aus dem ActionlListener Java Basics - Anfänger-Themen 1
T hashCode mit boolean Java Basics - Anfänger-Themen 1
T boolean, was passiert hier? Java Basics - Anfänger-Themen 4
M Sind solche boolean Anweisen empfehlenswert? Java Basics - Anfänger-Themen 3
N Boolean Werte - immer "false" Java Basics - Anfänger-Themen 5
J GUI per Boolean steuern Java Basics - Anfänger-Themen 3
F Effizientes Lesen von 65 Datein mit Boolean Werten Java Basics - Anfänger-Themen 6
K Viergewinnt - boolean Problem Java Basics - Anfänger-Themen 2
S Best Practice Boolean mit IF verbinden Java Basics - Anfänger-Themen 7
D Boolean mit String Java Basics - Anfänger-Themen 2
K Methode ohne Rückgabewert in boolean Methode ändern Java Basics - Anfänger-Themen 6
E 2 dimensionales Boolean Array Java Basics - Anfänger-Themen 5
B assertArrayEquals nicht für boolean[]? Java Basics - Anfänger-Themen 2
M !boolean das selbe wie boolean == false? Java Basics - Anfänger-Themen 3
L Boolean Methode wirft Fehler aus Java Basics - Anfänger-Themen 12
M Erste Schritte boolean: ist Zahl Hexadezimal - Lösung verwirrend Java Basics - Anfänger-Themen 6
F Datentypen Frage nach Boolean Java Basics - Anfänger-Themen 11
C Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 20
B Boolean abfrage Java Basics - Anfänger-Themen 3
L The operator && is undefined for the argument type(s) String, boolean Java Basics - Anfänger-Themen 8
L Methoden Boolean-Methode Java Basics - Anfänger-Themen 16
W Datentypen Zweidimensionales Boolean Array Java Basics - Anfänger-Themen 13
P Compiler-Fehler Boolean: Missing Return Statement Java Basics - Anfänger-Themen 4
M int & boolean Java Basics - Anfänger-Themen 12
feardorcha boolean array false - true - Abfrage Java Basics - Anfänger-Themen 10
R boolean, if-else Java Basics - Anfänger-Themen 7
J Variablen Boolean true "übersetzen" in String Java Basics - Anfänger-Themen 10
M Meldung "cannot convert flom boolean to boolean[]" Java Basics - Anfänger-Themen 3
S Name eines boolean ausgeben (nicht den Wert) Java Basics - Anfänger-Themen 43
S Variablen Prüfen, ob einer von vielen boolean true ist Java Basics - Anfänger-Themen 8
D boolean te wird nicht verwendet Java Basics - Anfänger-Themen 2
M Bedingte Anweisung mit Boolean Java Basics - Anfänger-Themen 2
C cannot convert from int to boolean Java Basics - Anfänger-Themen 3
T Variablen boolean-wert wird nicht gesetzt Java Basics - Anfänger-Themen 6
A In Methode boolean ändern Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben