Verwendung von Instanzvariablen Instanzierung von Objekten Objekte als Datenspeicher Direkte Zuweisu

alex2306

Mitglied
Hallo,
ich habe folgende Aufgabe (siehe Anhang) als Hausaufgabe bekommen. Ich wäre sehr dankbar für Hilfe und Tipps. Soviel habe ich bereits, bin mir aber überhaupt nicht sicher mit den Klassenmethoden, da wir gerade erst damit angefangen haben.

Java:
public class Malkasten {
 public static String [] kasten;
 
 public static void setKasten (String[] inhalt) {
  inhalt=kasten;
 }
 
 public static boolean kastenLeer; {
 for (int i=0; i<kasten.length; i++) {
  if(i<=0) {
  
  }
 }
 }
 public static int anzahlPinsel;
 
 public static String
 
 public static void printKasten() {
 
 }
 
 public static void main(String[] args) {
  // TODO Auto-generated method stub
 
  Malkasten.printKasten();
  Malkasten.setKasten(new String[]{"Pinsel","pinsel","Rote Farbe","Blaue Farbe","Gelbe Farbe","Deckweiss"});
  System.out.println("Anzahl Pinsel: "+Malkasten.anzahlPinsel());
  Malkasten.printKasten();
 }

}
 

Anhänge

  • Screenshot (1)_LI.jpg
    Screenshot (1)_LI.jpg
    1,1 MB · Aufrufe: 139
Zuletzt bearbeitet von einem Moderator:

temi

Top Contributor
Java:
// Klasse zur Speicherung von Stringdaten
class Data {
   String data; // Instanzvariable

   // Konstruktor
   public Data(String data) {
      this.data = data;
   }

   // Getter
   public String getData() {
      return data;
   }
}

Reicht das?
 

alex2306

Mitglied
@temi
Nicht wirklich. Das Grundprinzip verstehe ich. Nur leider habe ich wirklich Probleme es umzusetzen bei Aufgabenstellungen. Habe jetzt nochmal wie ich anfangen würde, oben mit reingeschrieben. Ich verstehe nur nicht, wie ich richtig mit den Klassenmethoden umgehe und sie mit Klassenvariablen kombiniere.
 
Zuletzt bearbeitet:

temi

Top Contributor
Java:
 public static void setKasten (String[] inhalt) {
  inhalt=kasten;
}

Schau dir das noch mal genau an. In Java funktioniert eine Zuweisung so:

variableDerEtwasZugewiesenWird = wertDerZugewiesenWird

Du versuchst der übergebenen Parametervariablen "inhalt" den Wert der Klassenvariable "kasten" zuzuweisen.
 

alex2306

Mitglied
@temi
Ich habe die Zuweisung oben nun geändert und versucht den Code weiterzuschreiben .Trotzdem komme ich bei den Klassenmethoden wo im Moment ; ich sag mal wo kein Leben drin ist, immer noch nicht wirklich weiter:

Java:
public class Malkasten {
 public static String[] kasten;
 public static void setKasten(String[] inhalt) {
  // TODO Auto-generated method stub
  kasten=inhalt;
 }
 public static boolean kastenLeer;
 {
  for (int i = 0; i < kasten.length; i++) {
   if (kasten[i] != null || kasten.length==0) {
    kastenLeer = true;{
    }
   } else {
    kastenLeer = false;
   }
  }
 }
public static int anzahlPinsel(){
 return 0;
 
 }
public static String kastenAnschauen(){
 return null;
 }
 
 public static void printKasten() {
  // TODO Auto-generated method stub
 }

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Malkasten.printKasten();
  Malkasten.setKasten(
    new String[] { "Pinsel", "pinsel", "Rote Farbe", "Blaue Farbe", "Gelbe Farbe", "Deckweiss" });
  System.out.println("Anzahl Pinsel: " + Malkasten.anzahlPinsel());
  Malkasten.printKasten();
 }
}
 
Zuletzt bearbeitet von einem Moderator:

MoxxiManagarm

Top Contributor
@temi
Trotzdem komme ich bei den Klassenmethoden wo im Moment ; ich sag mal wo kein Leben drin ist, immer noch nicht wirklich weiter:

Nimms mir nicht übel, aber im Text steht doch quasi schon alles haarklein drin was du tun musst...

Ich helfe dir bei der einen Methode, vielleicht hilft es dir beim verstehen. Die anderen Methoden sind genauso einfach...

Java:
public static boolean kastenLeer { // Das Semikolon hier entfernt
  if(kasten == null || kasten.length == 0) return true;
  else return false; 
}
 

alex2306

Mitglied
Nimms mir nicht übel, aber im Text steht doch quasi schon alles haarklein drin was du tun musst...
Erstmal danke fürs überhaupt helfen wollen. Ich habe auch nicht erwartet, dass mir jemand die Methoden hinschreibt, sondern eher was erklären könnte. Ich mache das ganze auch erst seit wenigen Wochen und für jemanden der das länger macht mag das alles sofort logisch sein, aber ich verstehe es eben noch nicht, sonst würde ich nicht fragen.

Außerdem funktioniert bei mir das Code-Stück leider nicht.
 

Javinner

Top Contributor
Poste bitte die Aufgabenstellung nächstes Mal als Text, dann kann man die Punkte besser editieren.

In der Aufgabenstellung steht, du sollst die Kiste durchgehen und die Anzahl der Pinsel ausgeben, sprich aller Strings, welche den Namen "Pinsel" tragen. In der Methode anzahlPinsel() wird im Augenblick die Null zurückgegeben. Nun musst du die Aufgabenstellung implementieren.
In Pseudo-Code würde es heißen:
  • gehe die Kiste durch
  • immer dann, wenn ein String den Namen "Pinsel" trägt, ganz von Klein- oder Großschreibung abgesehen, zähle diese
  • gebe den Wert der "Zählvariablen" an den Aufrufer zurück
Also dann in der Methode drin:
  • erstelle eine Variable vom Typ int Name zähler;
  • iteriere durch das Array kasten
  • wenn an der Stelle x im Kasten das Wort "Pinsel" sich befindet (equalsIgnoreCase) erhöhe Variable zähler um eins
  • gebe am Ende der Methode Variable zähler zurück return zähler;
Java:
public static int anzahlPinsel(){
    return 0;
}
 

Javinner

Top Contributor
Java:
public class SomeExample
{

    public static void main(String[] args)
    {
        String[] letter_array =
        {
            "A", "B", "a", "c", "C", "b", "B", "A"
        };
        int bigA = 0;
        int smallA = 0;
        int summAa = 0;
        for (String s : letter_array)
        {
            if (s.equals("A"))
            {
                bigA++;
            }
            if (s.equals("a"))
            {
                smallA++;
            }
            if (s.equalsIgnoreCase("a"))
            {
                summAa++;
            }
        }
        System.out.println(String.format(Locale.GERMAN, "BigA: %d, Smalla: %d, SummAa: %d%n", bigA, smallA, summAa));
    }
/** Output */
BigA: 2, Smalla: 1, SummAa: 3
}
Lerne Grundlagen ;)
 

MoxxiManagarm

Top Contributor
Erstmal danke fürs überhaupt helfen wollen. Ich habe auch nicht erwartet, dass mir jemand die Methoden hinschreibt, sondern eher was erklären könnte. Ich mache das ganze auch erst seit wenigen Wochen und für jemanden der das länger macht mag das alles sofort logisch sein, aber ich verstehe es eben noch nicht, sonst würde ich nicht fragen.

Außerdem funktioniert bei mir das Code-Stück leider nicht.
Ich bin vielleicht mit dem falschen Bein aufgestanden, ich entschuldige mich dafür. Nichts desto trotz steht wirklich jeder einzelner Schritt beschrieben da. Du musst "nur" noch übersetzen. Ich weiß nicht wie man das noch erklären soll.

Hier nochmal ein Übersetzungsbeispiel anhand der Methode oben.
Java:
public static boolean kastenLeer { // vorgegeben
  if(kasten == null // Falls die Klassen Variable kasten java-null ist...
    || kasten.length == 0) // oder keine Speicherpklätze hat (siehe length)...
       return true; // soll true zurückgegeben werden ...
  else return false; // Trifft keine dieser Bedingungen zu, soll false zurückgegeben werden.
}

Wie du siehst konnte ich den Text 1:1 hinter die Zeilen setzen. Dieses Übersetzen musst du können, dabei können wir dir kaum helfen, so Leid es mir tut.

Im übrigen würden die meisten das noch verkürzen auf
Java:
public static boolean kastenLeer {
  return (kasten == null || kasten.length == 0);
}
Ich hatte nur die lange Schreibweise gewählt, damit es noch verständlicher ist.
 

Neue Themen


Oben