Bildschirm-Programm

Feal

Mitglied
Hallo.

Es geht um folgende Aufgabe:

Gegeben sei die folgende Klasse (nur auszugsweise angegeben):

[Java]
public class Bildschirm
{...}

public Bildschirm(int xAufloesung, int yAufloesung)
{...}

public int anzahlBildpunkte()
{...}

public void loeschen(boolean invertieren)
{...}

Schreiben Sie einige Zeilen JAVA-Code, die ein Bildschirm-Objekt erzeugen
und dann seine Methode loeschen nur dann aufruft, wenn die Anzahl der Bildpunkte
größer als 2 Millionen ist.[/code]

Ich bin soweit:

Java:
public class Bildschirm
{

    private int xAufloesung;
    private int yAufloesung;
    private int punkte;
    private boolean invertieren;
    
    public Bildschirm(int xAufloesung, int yAufloesung)
    {
        this.xAufloesung = xAufloesung;
        this.yAufloesung = yAufloesung;
        this.invertieren = invertieren;
    }
    
    public int anzahlBildpunkte()
    {
        punkte = xAufloesung * yAufloesung;
        
        if(punkte <= 2000000)
        {
            invertieren = false;
            return punkte;
        }
        else
        { 
            invertieren = true;
            xAufloesung.loeschen();
            yAufloesung.loeschen();
            return punkte;
        }
    }

    public void loeschen(boolean invertieren)
    {
      xAufloesung = 0;
      yAufloesung = 0;
    }    

}


Ich will also, dass in der Methode anzahlBildpunkte() die Methode loeschen(boolean invertieren) aufgerufen wird, falls die Bildpunkt > 2.Mio.

Leider ist es mir nicht ganz klar, wie das mit dem boolean zu verstehen ist. Ich muss es irgendwie schaffen, für <2 Mio true an loeschen auszusenden und die Methode dann nicht aufzurufen und vice versa. Das ist meine Idee. Leider komme ich aber nicht weiter.

Ich freue mich auf euer Feedback.

Lg
 
Zuletzt bearbeitet von einem Moderator:

Feal

Mitglied
Okay. Ich habe es glaube gelöst. Jedoch bin ich mir nicht sicher, ob das im Sinne der Aufgabe war.

Hier das Stück veränderter Code:

Java:
public int anzahlBildpunkte()
    {
        punkte = xAufloesung * yAufloesung;
        
        if(punkte <= 2000000)
        {
           
            return punkte;
        }
        else
        { 
            
            loeschen(true);
            return punkte;
        }
    }

    public void loeschen(boolean invertieren)
    {
      xAufloesung = 0;
      yAufloesung = 0;
      System.out.println("Unzulässige Auflösung");
    }
 
Zuletzt bearbeitet:

timbeau

Gesperrter Benutzer
Das "boolean" macht keinen Sinn, würde aber funktionieren.

Die Methode loeschen wird nur dann aufgerufen wenn "else" greift. Soweit so gut. Der boolean ist dabei völlig unwichtig und hat keinerlei Auswirkungen auf den Programmablauf.

Zusätzlich würdest du auch bei punkte > 2 Millionen die Auflösung auf 0x0 setzen aber die alten Punkte returnen.
 
S

SlaterB

Gast
anzahlBildpunkte() sollte genau das machen, was die Methode mit ihrem Namen auch aussagt, die Punkte berechnen und zurückgeben,
auf keinen Fall eine andere Methode aufrufen!,
das macht der Aufrufer, der sich den Rückgabewert von anzahlBildpunkte() anschaut,

soweit ich das verstehe soll dann auch die zweite Methode aufgerufen werden oder nicht, von Parameter true/false steht da nichts,
das Klassenattribut invertieren in der Klasse Bildschirm kann komplett weg
 

Feal

Mitglied
Also ich hab Invertieren komplett aus dem Code herausgenommen. Das ist auch logisch.

Allerdings verstehe ich deine Aussage, dass ich in der Methode anzahlBildpunkte im else-Zweig nicht loeschen aufrufen soll, nicht ganz ???:L. Es geht in dem Kapitel des Buches nämlich genau darum: Externe und Interne Methodenaufrufe. Es stand auch ein ähnliches Beispiel in dem das genau so praktiziert wurde.

Standpunkt:

[Java]

public class Bildschirm
{

private int xAufloesung;
private int yAufloesung;
private int punkte;

public Bildschirm(int xAufloesung, int yAufloesung)
{
this.xAufloesung = xAufloesung;
this.yAufloesung = yAufloesung;
}

public int anzahlBildpunkte()
{
punkte = xAufloesung * yAufloesung;

if(punkte <= 2000000)
{
return punkte;
}
else
{

loeschen(true);
return punkte;
}
}

public void loeschen(boolean invertieren)
{
xAufloesung = 0;
yAufloesung = 0;
System.out.println("Unzulässige Auflösung");
}

}
[/code]

Hinweis zur Aufgabenstellung:

Kümmern Sie sich nicht darum, ob das logisch ist - das Ziel ist lediglich, dass etwas syntaktisch Korrektes aufgeschrieben wird, also etwas, das sich von einem Compiler übersetzen lassen könnte.
 
Zuletzt bearbeitet:

timbeau

Gesperrter Benutzer
Du kannst auch den Parameter aus der loeschen-Methode rausnehmen.

Du nutzt ihn nämlich innerhalb dieser Methode überhaupt nicht. Wenn du mit Eclipse entwickelst würde er dir das auch anzeigen. Das soll nicht heißen, dass man nicht mit einem Editor o.ä. starten sollte.
 
S

SlaterB

Gast
der Parameter ist vorgegeben, den kann man nicht so einfach entfernen,
ich erinnere dringend erneut daran, in anzahlBildpunkte() nicht loeschen() aufzurufen, das ist in jedem Fall falsch und ganz schlechtes Design,

man muss die Aufgabe korrekt lesen: 'der Code der das Objekt erzeugt soll loeschen() aufrufen wenn [..]'
 

timbeau

Gesperrter Benutzer
Stimmt, dann sollte er aber doch auch irgendwie interpretiert werden.

edit: Du denkst nicht OO. Das Objekt kann irgendwann vll. mehr als 2Mio. Bildpunkte aufweisen. Eine Methode im Konstruktor wird nur 1x aufgerufen. Was, wenn sich das Objekt später ändert?
 
S

SlaterB

Gast
@Feal
nein, wieso willst du den Aufruf unbedingt irgendwo in dieser Klasse unterbringen?
die Erzeugung des Objektes und der Aufruf von anzahlBildpunkte() finden dort (bisher) doch auch nicht statt

die Klasse bietet ihre Konstruktoren und Methoden nur an,
JEMAND ANDERS, z.B. eine main-Methode, falls dir das was sagt, arbeitet dann, erstellt Objekte, ruft Methoden auf usw.
 

Feal

Mitglied
Ich komme doch nicht weiter.

Es sollen also 2 Klassen sein, ja?

Klasse2 beinhaltet alle Methoden die ich gegeben habe.

Klasse1 greift auf die Methoden von Klasse1 zu und erstellt ein Objekt, allerdings nur dann, wenn anzahlBildpunkte() < 2 Mio ist?

Dazu bräuchte ich doch ne weitere Methode. Wo genau muss die If-Anweisung hin? :(
 

timbeau

Gesperrter Benutzer
Immernoch nicht OO.

Klasse1 = Bildschirm <-- ist völlig passiv und bietet nur Methoden an

Klasse2 = main <--- erstellt Objekt = Instanz von Klasse Bildschirm, ruft Methoden auf diesem Objekt auf, reagiert auf Rückgaben des Objekts und und und.
 
S

SlaterB

Gast
meine Güte,
nun hast du zumindest so viel darüber nachgedacht, da kann man den Rest auch verraten:
wo du das programmierst ist mir egal, ist sogar der Aufgabe egal, da steht ja nur 'schreiben sie ein paar Zeilen Code',
Java:
Bildschirm b = new Bildschirm(42,42); // Werte anscheinden egal
if (b.anzahlBildpunkte() > 2000000) {
 b.loeschen(true);
}
fertig
 

timbeau

Gesperrter Benutzer
Oder zur vollständigen Verwirrung

Java:
Bildschirm b = new Bildschirm(42,42); // Werte anscheinden egal
if (b.anzahlBildpunkte() > 2000000) {
 b.loeschen(false);
}

:p
 

Feal

Mitglied
Wenn ich versuche den Code einzubedden kommt folgende Fehlermeldung:

anzahlBildpunkte(int,int) in Bildschirm cannot be applied to ()

Hmm.
 

timbeau

Gesperrter Benutzer
Es sei dir verziehen (soweit es da was zu verzeihen gibt)

Dann solltest du erstmal die Objekttheorie verinnerlichen
 
S

SlaterB

Gast
die Fehlermeldung klingt aber gar nicht nach fehlenden Objekt, sondern als hätte anzahlBildpunkte() in Bildschirm zwei Parameter,
das passt nicht zum Code im ersten Posting
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B großzügiges Pixelraster über Bildschirm legen Java Basics - Anfänger-Themen 7
M Abfrage j/n und Bildschirm löschen Java Basics - Anfänger-Themen 3
C 1x1 Ausgabe auf dem Bildschirm Java Basics - Anfänger-Themen 3
CptK Interface Bilder über Bildschirm bewegen, bis der Abstand zum vorherigen zu groß wird Java Basics - Anfänger-Themen 13
V Attribut aus aus jedem ArrayListen index auf Bildschirm ausgeben Java Basics - Anfänger-Themen 9
JAVAnnik Klick auf Bildschirm Java Basics - Anfänger-Themen 11
S Bildschirm für alle Klassen erstellen Java Basics - Anfänger-Themen 8
P Ausgabe auf dem Bildschirm Java Basics - Anfänger-Themen 9
U PNG-Datei einlesen und anschließend auf dem Bildschirm ausgeben Java Basics - Anfänger-Themen 7
Z Alle 15 sek eine Zufallszahl auf Bildschirm Java Basics - Anfänger-Themen 10
G Text am Bildschirm ausgeben Java Basics - Anfänger-Themen 7
G Auf Bildschirm (kein Fenster) schreiben Java Basics - Anfänger-Themen 2
G Punkt auf Bildschirm erstellen? Java Basics - Anfänger-Themen 14
G button nimmt ganzen bildschirm ein! Java Basics - Anfänger-Themen 18
T Seitenumbruch? Konsole/Bildschirm löschen? Java Basics - Anfänger-Themen 7
S Mausposition auf dem Bildschirm Java Basics - Anfänger-Themen 14
G Befehl für die Ausgabe auf dem Bildschirm in Großbuchstaben Java Basics - Anfänger-Themen 2
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
J Delay erzeugen, ohne Programm zu blockieren Java Basics - Anfänger-Themen 7
Ü Dead Code im Programm? Java Basics - Anfänger-Themen 13
M Java Mail Programm Java Basics - Anfänger-Themen 4
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
M Mini Jar-Programm Java Basics - Anfänger-Themen 51
G JTable Listselectionlistener friert das Programm ein Java Basics - Anfänger-Themen 8
M Das Programm stellt nichts dar Java Basics - Anfänger-Themen 2
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
Z Programm Ideen Java Basics - Anfänger-Themen 8
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
T Programm stürzt ab Java Basics - Anfänger-Themen 40
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
Jul1n4tor Programm mit Scanner und If-Statements Java Basics - Anfänger-Themen 2
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
K Ist das Programm schlecht bzw. schlampig programmiert ? Java Basics - Anfänger-Themen 9
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
K Warum läuft das Programm nicht(bzw. nicht richtig) Java Basics - Anfänger-Themen 4
M Von Eclipse zum richtigen Programm Java Basics - Anfänger-Themen 1
nbergmann IntelliJ: Wie lade ich ein fertiges Programm aus dem Lehrbuch? Java Basics - Anfänger-Themen 26
D Anfängerfrage zu meinem Programm. Java Basics - Anfänger-Themen 15
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 22
I Jetty starten von Programm (Main) Java Basics - Anfänger-Themen 27
Kydo Programm Beschreibung Java Basics - Anfänger-Themen 3
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 7
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
D JAVA Programm schreiben Java Basics - Anfänger-Themen 46
P exportiertes Programm funktioniert nur teilweise Java Basics - Anfänger-Themen 7
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
M Wo hält das Programm an? Java Basics - Anfänger-Themen 11
J Mein Java Programm lässt sich nicht mehr bearbeiten Java Basics - Anfänger-Themen 2
Fugover Programm funktioniert nicht Java Basics - Anfänger-Themen 11
Fugover Kopfrechnen-Programm Java Basics - Anfänger-Themen 6
NadimArazi Wie kann ich eine collision detection für die Paddles in meinem Pong Programm hinzufügen? Java Basics - Anfänger-Themen 4
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
sserio Größtes Palindrom-Produkt Programm funktioniert nur halb Java Basics - Anfänger-Themen 23
J selbst erstellte Datei mit Programm öffnen Java Basics - Anfänger-Themen 10
F nach Methode Programm nicht beenden Java Basics - Anfänger-Themen 9
A wie kann ich es in meinem Programm rein tun Java Basics - Anfänger-Themen 8
S Fehler beim Programm Java Basics - Anfänger-Themen 2
Jose05 Fehler im Programm feststellen Java Basics - Anfänger-Themen 2
F Kann mir jemand kurz dieses Programm erklären? Java Basics - Anfänger-Themen 22
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
J Kann ich mein Programm so schreiben? Java Basics - Anfänger-Themen 4
A Lotto Programm Java Basics - Anfänger-Themen 3
S Programm erstellen Java Basics - Anfänger-Themen 3
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
S MinMax Programm erstellen Java Basics - Anfänger-Themen 4
J Interpreter-Fehler Programm gibt nicht gewünschtes Ergebnis aus Java Basics - Anfänger-Themen 11
brypa Programm mit Eingabe Java Basics - Anfänger-Themen 129
B Java Programm soll mit Python kommunizeren Java Basics - Anfänger-Themen 1
SpigBin Programm läuft nicht weiter... Java Basics - Anfänger-Themen 10
M JAVA Programm in Website einbinden Java Basics - Anfänger-Themen 19
B Programm, dass alle 3 Tage eine Webseite öffnet? Java Basics - Anfänger-Themen 20
B Programm beendet sich nicht und weiteres seltsames Verhalten Java Basics - Anfänger-Themen 9
N Eclipse Programm normal ausführen Java Basics - Anfänger-Themen 1
D Programm auf Enter warten lassen Java Basics - Anfänger-Themen 2
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
C Brauche Hilfe um ein Programm zu schreiben Java Basics - Anfänger-Themen 8
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
nevel Programm für die Summer der Zahlen 1- 1ß Java Basics - Anfänger-Themen 12
WAB9703-04 Programm zum automatischen Ausfüllen von Formularen programmieren Java Basics - Anfänger-Themen 3
OSchriever Jar-Programm läuft auf Windows aber nicht auf Linux(Raspberri Pi4) Java Basics - Anfänger-Themen 22
G Programm Code Java Basics - Anfänger-Themen 5
CptK Achsenskalierung in Koordinatensystem hängt Programm auf Java Basics - Anfänger-Themen 5
H Kann eine while-Schleife ein Programm blockieren? Java Basics - Anfänger-Themen 8
TimoN11 Mail Programm mit Java? Java Basics - Anfänger-Themen 1
Sajeel Chattha Dieses Programm umschreiben Java Basics - Anfänger-Themen 5
J Programm beenden ohne System.exit() oder Runtime.exit() Java Basics - Anfänger-Themen 5
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
A Programm Histogram Java Basics - Anfänger-Themen 2
C Was ist nötig für ein Java-Programm auf Server für Website Java Basics - Anfänger-Themen 18

Ähnliche Java Themen

Neue Themen


Oben