Java Fragen Klassen und objekte

01/11/2020 20:08 .Hisoka#1
Hey, habe mir einen alten test angesehen und versuche diesen grad zu lösen nur kenn ich mich grad 0 aus. Könnte mir vllt jemand helfen pls
Aufgabe :
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

danke
01/12/2020 11:30 florian0#2
Welche Art von Hilfe erwartest du? Hast du spezifische Fragen? Oder willst du einfach die Lösung haben?
01/13/2020 19:48 Melli-#3
Puh Java bin ich raus aber so ein Code snippet von C# geht immer:
Code:
public class Artikel {
      
}

public class Notebooks : Artikel {

}

public class Drucker : Artikel {

}
Die Methoden da rein klatschen muss ich nicht noch machen - kann man sich denken. Wenn das überhaupt mit 3 Klassendeklarationen gemeint ist, aber ich denke schon.

zu 2:
erstmal besitzen alle einen Konstruktor, desweiteren alle Methoden von Artikel (quasi getter und setter da diese von Artikel geerbt haben) und die Methode close.

zu 3:
ich glaube man muss sie ohne Abhängigkeit schreiben, so ist ja der Drucker abhängig vom Artikel, d.h. erst wird Artikel instanziiert und danach Drucker, quasi anstatt Drucker : Artikel einfach nur Drucker (aber kann ich nicht genau sagen, hab mich nie damit beschäftigt ob eine veerbte Klasse deren Basis auch mit instanziiert werden muss, aber logisch wäre es)


Wie man Member / Properties definiert (quasi sowas wie Geschwindigkeit, Typ, Name, Artikelnr...) solltest du wohl selbst wissen.
01/26/2020 13:05 sk8land​#4
Quote:
Originally Posted by Melli- View Post
Wie man Member / Properties definiert (quasi sowas wie Geschwindigkeit, Typ, Name, Artikelnr...) solltest du wohl selbst wissen.
[weint in Java]
01/26/2020 16:27 Melli-#5
Quote:
Originally Posted by sk8land​ View Post
[weint in Java]
?

Quote:
Ein Property dient in (.NET-)Programm dazu, ein Attribut einer Klasse zu deklarieren, bei dem aber Programmcode sowohl beim Setzen des Wertes als auch beim Lesen des Wertes ausgeführt wird.
[Only registered and activated users can see links. Click Here To Register...]

Hab ich was falsches gesagt? o:

Man muss aber noch dazu sagen das bei einem Property / Member in Java auf diesen anders zugegriffen wird.

Code:
JAVA:
private int number;
und dann mit methoden wie z.B.

Code:
JAVA:
public int GetNumber() { return number; }
public void SetNumber(int value) { number = value; }
diese verändern. In C# geht das ganze einfacher:

Code:
C#
public int Number { get => number; set => number = value; }
private int number;
Wobei man auch in C# keinen extra private Member dafür bräuchte, man diesen aber für die Übersicht gerne nimmt. (Zumindest haben wir das bei uns so eingeführt in der Firma, daher mache ich das ganze auch so weiter)
01/26/2020 17:26 warfley#6
Quote:
Originally Posted by Melli- View Post
Hab ich was falsches gesagt? o:

Man muss aber noch dazu sagen das bei einem Property / Member in Java auf diesen anders zugegriffen wird.
Ich geh mal davon aus er meint das es in Java nicht das konzept von properties, als syntactic sugar für getter und setter funktionen, gibt. "Properties" in java sind letzendlich nur eine kombination aus privaten variablen und öffentlichen Methoden, kein eigenes (syntaktisches) Konzept.

Aber dazu sei gesagt, wer heut zu tage noch getter und Setter ich java schreibt ist selten dämlich, lombok regelt:
Code:
@Getter [MENTION=1206029]setter[/MENTION]
private int number;
(PS: fuck you epvp, warum werden @[IRGENDEINSTRING] in code zu mentions gemacht)
06/21/2020 02:19 Nightwish001#7
Wohl etwas spät aber da noch niemand eine Vollständige Antwort gegeben hat, hier:
Ich habe mal alle getter und setter im Code auch wenn in der Aufgabe steht das man die nicht erwähnten weglassen kann.

1. Aufgabe:


2. Aufgabe:
Notebook besitzt alle getter/setter von Artikel (Artikelnummer, Bezeichnung, Preise) sowie die methode "close()". In meinem Beispiel habe ich für displaygrösse auch noch getter und setter Methoden welche man dann auch erwähnen müsste.

3. Aufgabe:
Hier gibt es mehr als eine Lösung aber ich denke mal das man hören wollte, dass man eine abstrakte Klasse daraus machen soll. Sprich Artikel wird zu:
Code:
public abstract class Artikel
Somit kannst du z.B.
Code:
Artikel artikel = new Drucker();
. Jedoch funktioniert folgendes nicht:
Code:
Artikel artikel = new Artikel()
Beispielsweise könntest du jedoch auch anstatt einer abstrakten Klasse einen privaten leeren Konstruktor deklarieren.