Frage bezüglich der OOP

StupidAttack

Bekanntes Mitglied
Hallo liebe Community

Ich arbeite an einem Projekt, doch komme mit meinem Anfängerwissen ziemlich schnell an einem punkt an wo ich nimmer weiter weiss.

angenommen ich habe eine klasse (nennen wir sie K1). objekte dieser klasse beinhaltet bestimme variablen und methoden und hat somit eine identität. ich will nun etwa 100 objekte dieser klasse erstellen.

jetzt schreibe ich eine andere klasse, die mit diesen 100 objekten arbeiten soll.(arbeiteMitK1).

Problem : die arbeiteMitK1-Klasse soll mit mindestens 2 Objekten und maximal 10 Objekten arbeiten können. ich will nun über Input output meiner arbeiteMitK1-Klasse klarmachen mit welchen Objekten sie zu arbeiten hat. geht das überhaupt? Ich kann mir das absolut nicht vorstellen. Ich will nämlich keineswegs für jedes mögliche Szenario ne if-anweisung machen und wenn meine Anweisung beispielsweise heisst berechne methode x mit objekt 1 und berechne methode y mit objekt 97...Das gäbe dann ziemlich viele möglichkeiten...sogar ich bin verwirrt wenn ich den text lese...nichtsdestotrotz: mein anliegen: Ich will durch simple anweisungen ("calculate method5 with object 5 and 10") dem Objekt der Klasse klarmachen was zu tun ist. Nun soll ein Zwischenschritt die wichtigen zahlen (method5, 5, 10) verarbeiten und dafür sorgen dass die arbeiteMitK1-Klasse nen Wert ausspuckt...


Spinne ich oder habe ich den Sinn der OOP nicht verstanden?

Danke und schönen Abend
 
was immer du da vorhast ist denkbar, mehr kann ich an Frage nicht herauslesen,

das Konzept eines Arrays oder einer Liste für die 100 Objekte ist dir bekannt?
da kann man leicht array[95] aufrufen, Indexe von bis zu übergeben ist nicht völlig ungewöhnlich
 
Leute, schnell eine ganz konkrete kurze Frage:

Ich erstelle ein Objekt (öffentlich):

field field1 = new field();
field[] irgendeinName = new field [99];

geht das? ich will nämlich einen Array erstellen, der die Objektreferenvariablen meiner 100 field-Objekte beinhaltet. Oder muss ich den Typ String nehmen?

Grüsse
 
klar geht das. die objekte in dem array sind dann aber noch nicht instanziiert/referenziert.

field[] name = new field[99];
for ( int i = 0; i < name.length; i++ )
field = new field();
......
 
herrlich;

also mit der for schleife benennst du quasi meine referenzvariablen und erstellst gleichzeitig die 100 objekte. und die überlegung dahinter ist dass die Namen meiner objekte ziemlich egal sind, da sie ja durch den index des arrays eindeutig definiert werden, sehe ich das richtig?

Oder führt kein Weg daran vorbei die 100 objekte selbst zu deklarieren (mag sein dass ich das falsche verb benutze)?

(die 4 wochen wo ich jetzt dabei sind zeichnen sich vieleicht noch ab...)

jedenfalls Danke
 
und kann ich dann die methoden dieser objekte direkt über einen array aufrufen; also so:

field[5].irgendeineMethode();

Java:
class bla
{




void bsp();
{
System.out.println("Egal, mach einfach was");

}

}

class versuch
{

public static void main ( String[] args) 
{

String referenzV;

bla BSP = new bla();

bla[] ARR = new bla[10];


bla[5].bsp();

}

}

dieses programm will nämlich ned...
 
ARR[5].bsp();

bla muss natürlich eine nicht abstrakte Klasse sein.

edit: ach da oben stand ja noch class bla {. dachte den klassenkopf haste garnet mitkopiert. naja dann passt das. gewöhn dir vllt noch ein bisschen übersichtliche formation an(klammsetzung und so). ist schöner zu lesen
 
Zuletzt bearbeitet:
Und natürlich muss an der Position mit dem Index 5 auch ein Objekt von der
Klasse "bla" vorhanden sein. nrg hat dir ja gezeigt wie du das Array voll kriegst.

Übrigens liest sich der Code leichter wenn du dich
an die Empfehlungen für die Schreibweisen von Klassen (Großer Anfangsbuchstabe)
und Variablen (Kleiner Anfangsbuchstabe) hältst.
 
mhh; ok. Danke soweit


auch edit: 1. ich habe das geschrieben ohne zu aktualisieren, deshalb mein etwas ahnugsloser dank
2. ich habe die letzten 10 minuten damit verbracht herauszufinden, was an meiner klasse nicht abstrakt ist 🙂
3. stimmt gman, da war ich wohl verwirrt...
4. mit der formatierung habt ihr auch recht, nur muss ich es wohl schmerzhaft am eigenen leibe erfahren was es heisst später seinen eigenden code nicht lesen zu können.

grüsse
 
Zuletzt bearbeitet:
hehe, ich weiss ich bin schrecklich, doch kann die 2 fehler nicht finden(Bla = new Bla(); cannot find symbol....):

Java:
class Bla
{

public void bsp()
{
System.out.println("Egal, mach einfach was");

}

}

class versuch
{

public static void main ( String[] args) 
{

Bla[] arrayObjekt = new Bla[9];

for ( int i = 0; i < arrayObjekt.length; i++ )
{
Bla[i] = new Bla();
}

Bla[5].bsp();
}
}
 
Hi,

der Fehler steckt in Zeile 22. Tipp: Es gibt einen Unterschied zwischen Variablen
und Datentypen (mehr sag ich nicht, damit der Lerneffekt größer ist 😉 )
 
......


Bla[] arrayObjekt = new Bla[9];

for ( int i = 0; i < arrayObjekt.length; i++ )
{
arrayObjekt = new arrayObjekt();

.......


Hehe; immerhin weiss ich erst seit einer Stunde wasn array ist und konnte demnach nicht beurteilen ob nrg was richtiges oder falsches sagt. ich habe nur seinen codeschnipsel kopiert 🙂

aber ich denke langsam fange ich an die möglichkeiten einer programmiersprache zu lieben...

Lieben gruss an alle die geholfen habe


ps: wie generös muss ich hier eigentlich mit der Danke Funktion umgehen?
 
es ist auch immer gut, wenn man sich an die Konfentionen hält und Klassen groß und Variablen klein schreibt... dann sieht man sofort dass Bla = new Bla(); das nicht geht...
 

Zurück
Oben