PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrfachvererbung ????



TRX
06.06.2009, 22:43
Hi an Alle!

Also ich steh mal wieder vor einem Java Problem bei dem ich nicht wirklich weiter komme...

Ich beschreibs euch mal:
Es gibt jetzt erstmal 4 Dateien mit jeweils einer Klasse.
Die erste Datei ist die Main, die ruft am Start eine Zweite Klasse auf die von JForm erbt und ein Fenster erzeugt.
Wenn man in diesem Fenster etwas ein gibt und auf Berechnen drückt sollte die der Konstruktor die Werte imit Settern in die Vierte Klasse schreiben und den Konstruktor der Dritten Klasse aufrufen der nur für die Berechnung da ist, dieser holt sich die Werte mit Gettern aus der Vierten von der er auch erbt, rechnet das Ergebnis aus und schreibt es mit einem Setter wieder in eine Variablen der Vierten Klasse. Von dort holt sich dan die Zweite Klasse den Wert und gibt in aus.

Soweit zur Wunschvorstellung...

Problem liegt darin dass ich die Zweite Klasse nicht von der Vierten erben lassen kann.
Denn wenn ich ein Objekt erzeuge:

NamederKlasse4 objekt = new NamederKlasse4();
Und vermeintlich einen Wert einlese:
objekt.irgendeinSetter(Wert);

dann kann der Konstruktor der Dritten Klasse aber nichts einlesen weil nichts in der Variablen steht.

Und genau das ist mein Problem!

Also wie kann ich von der Zweiten Klasse was in die Varibalen der vierten schreiben mit Setter-Methoden (weil die Variablen private sind) ?
Oder wie kann ich die Zweite Klasse on der Vierten erben lassen obwohl die Zweite Klasse ja schon von JForm erbt?


Hoffe hier gibts ein paar Leute , die erstens checken was ich da grad geschrieben hab und zweitens mir auch noch eine Lösungsmöglichkeit geben könnten..

Gruß
TRX

Ancient87
06.06.2009, 23:39
Ich bin mir nicht sicher was genau du willst aber: Mehrfachvererbung spielts in Java nicht. Was du machen kannst ist mithilfe von interfaces die vererbung "faken".

Wenn du ein interface machst das von der Klasse die du vererben wilslt extended und dann das interface implementest hast du denke ich was du willst.

Baer wieso kannst du dir Werte an die 4. nicht direkt in den Konstruktor uebergben stat die muehsam zu getten. Kannst eventuell konkret erklaeren was du vorhast das ganze hoert sich naemlich leicht strange an.

MFG

TRX
07.06.2009, 16:00
erstma danke dass du geantwortet hast Ancient87!


Baer wieso kannst du dir Werte an die 4. nicht direkt in den Konstruktor uebergben stat die muehsam zu getten.Weil ich versuche mich möglichst an die OOP zu halten...
In meinem Fall bedeuted dass für mich das ich die Variablen in eine andere Klasse auslagere und auf diese nur mit Getter und Setter-Mehtoden zugreife.

Gruß
TRX


//EDIT:

Ich hab's jetzt mal mit den interfaces probiert, aber es kommt ein fehler :

interface expected here
public interface TestInter extends AuslagerungsKlasse {
1 error
BUILD FAILED (total time: 4 seconds)

Das bedeuted meiner Meinung nach das er anstatt einer Klasse ein Interface will..

Kann mir jemand sagen wie ich sonst noch indirekt vererben kann oder wie das mit den Interfaces genau geht?

Gruß
TRX

//Edit2:

Ich stell jetzt mal einen Beispielcode rein wie des später so ungefähr aussehen sollte:

Main.java


package gui;

public class Main{

/**
* @param args
*/
public static void main(String[] args) {
KanalGeradeVisuell window = new KanalGeradeVisuell();

}

}


KanalGeradeVisuell.java


/*
* KanalGeradeVisuell.java
*
* Created on 5. Juni 2009, 09:34
*/

package gui;


public class KanalGeradeVisuell extends javax.swing.JFrame /*implements TestInter*/{

/** Creates new form KanalGeradeVisuell */
public KanalGeradeVisuell() {
initComponents();
setVisible(true);
}


// <editor-fold defaultstate="collapsed" desc=" Generated Code ">
private void initComponents() {
jButton1 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstan ts.EXIT_ON_CLOSE);
jButton1.setText("Berechnen");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout .Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILI NG, layout.createSequentialGroup()
.addContainerGap(412, Short.MAX_VALUE)
.addComponent(jButton1)
.addGap(199, 199, 199))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout .Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILI NG, layout.createSequentialGroup()
.addContainerGap(236, Short.MAX_VALUE)
.addComponent(jButton1)
.addGap(143, 143, 143))
);
pack();
}// </editor-fold>

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

KanalGeradeBerechnung ausgelagert = new KanalGeradeBerechnung();

ausgelagert.setBreite1(50);
ausgelagert.setLaenge(50);
ausgelagert.setHoehe1(50);
ausgelagert.setDicke(1);
ausgelagert.setAnzahl(1);
System.out.println(ausgelagert.getAnzahl() + " Zahl von Ausgelagert gelesen wird" );




KanalGeradeBerechnung berechnung = new KanalGeradeBerechnung();

double test = berechnung.KanalGeradeBerechnung();
System.out.println(test + " Endergebnis");

}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new KanalGeradeVisuell().setVisible(true);
}
});
}

// Variables declaration - do not modify
private javax.swing.JButton jButton1;
// End of variables declaration

}



KanalGeradeBerechnung.java


/*
* KanalGeradeBerechnung.java
*
* Created on 5. Juni 2009, 09:40
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/

package gui;


public class KanalGeradeBerechnung extends AuslagerungsKlasse
{
public double KanalGeradeBerechnung ()
{

System.out.println(getAnzahl() + " Zahl die in die Berechnung eingelesen wird");

setFlaeche( ( getAnzahl() * ( 2 * getBreite1() * ( getHoehe1() + getLaenge() ) ) ) / 1000000 );

return getFlaeche();

}
}



AuslagerungsKlasse.java





package gui;


public class AuslagerungsKlasse {
//Deklaration der Variablen

private int anzahl;
private double breite1;
private double breite2;
private double laenge;
private double hoehe1;
private double hoehe2;
private double durchmesser1;
private double durchmesser2;
private double dicke;
private double radius;
private double winkel;
private double rplus1;
private double rplus2;
private double steigung;
private double maße;
private double maßf;
private double flaeche;

//Deklaration und Initialisierung der PI Variable

public final double PI = 3.14159;

////////////////////////////////////////////////////////////////////
//
// Setter-Methoden
//
///////////////////////////////////////////////////////////////////

public void setAnzahl(int parameter)
{ System.out.println(anzahl + " Zahl bevor der neue Wert eingelesen wird");
anzahl = parameter;
System.out.println(anzahl + " Zahl nachdem der neue Wert eingelesen wurde");
}

public void setBreite1(double parameter)
{
breite1 = parameter;
}

public void setBreite2(double parameter)
{
breite2 = parameter;
}

public void setLaenge(double parameter)
{
laenge = parameter;
}

public void setHoehe1(double parameter)
{
hoehe1 = parameter;
}
public void setHoehe2(double parameter)
{
hoehe2 = parameter;
}

public void setDurchmesser1(double parameter)
{
durchmesser1 = parameter;
}

public void setDurchmesser2(double parameter)
{
durchmesser2 = parameter;
}

public void setDicke(double parameter)
{
dicke = parameter;
}

public void setRadius(double parameter)
{
radius = parameter;
}

public void setWinkel(double parameter)
{
winkel = parameter;
}

public void setRplus1(double parameter)
{
rplus1 = parameter;
}

public void setRplus2(double parameter)
{
rplus2 = parameter;
}
public void setSteigung(double parameter)
{
steigung = parameter;
}

public void setMaße(double parameter)
{
maße = parameter;
}

public void setFlaeche(double parameter)
{
flaeche = parameter;
}

//////////////////////////////////////////////////////////////////
//
// Getter-Methoden
//
/////////////////////////////////////////////////////////////////

public int getAnzahl()
{ System.out.println("vor return " + anzahl);
return anzahl;

}

public double getBreite1()
{
return breite1;
}

public double getBreite2()
{
return breite2;
}

public double getLaenge()
{
return laenge;
}

public double getHoehe1()
{
return hoehe1;
}

public double getHoehe2()
{
return hoehe2;
}

public double getDurchmesser1()
{
return durchmesser1;
}

public double getDurchmesser2()
{
return durchmesser2;
}

public double getDicke()
{
return dicke;
}

public double getRadius()
{
return radius;
}

public double getWinkel()
{
return winkel;
}

public double getRplus1()
{
return rplus1;
}

public double getRplus2()
{
return rplus2;
}

public double getSteigung()
{
return steigung;
}

public double getMaße()
{
return maße;
}

public double getMaßf()
{
return maßf;
}

public double getFlaeche()
{
return flaeche;
}


/** Instance of AuslagerungsKlasse */
public AuslagerungsKlasse() {
}

}



So ich hoffe das ihr jetzt besser versteht was ich meine..

Ancient87
08.06.2009, 16:58
Sorry mein Fehler dein interface kann nur andere interfaces extenden.
Sprich du musst deine (Auslagerungs) Klasse in ein Interface umbauen dann kannst du ein interface erstellen das Auslagerungsklasse extended und dieses interface dann selbst implementen.

ad OOP:

Nur weils OOP ist heisst das nicht das du keine Vars and den Konstruktor uebergeben darfst.

" KanalGeradeBerechnung ausgelagert = new KanalGeradeBerechnung();

ausgelagert.setBreite1(50);
ausgelagert.setLaenge(50);
ausgelagert.setHoehe1(50);
ausgelagert.setDicke(1);
ausgelagert.setAnzahl(1); "

ist ein prime candiate fuer
new KanalGeradeBerechnung(50, 50, 50, 1, 1);
Aber das nur am Rande. Ausserdem verstehe ich nicht warum du wenn du schon packages verwendest und das package gui nennst erst recht saemtliche Berechnungen da drinnen hast.

Anyway ich versteh noch immer nicht wozu du mehrfachvererbung brauchst (aber vielleicht bin ich auch einfach nur zu bloed) bzw was du versuchst zu bezwecken habe deinen Code mal compiliert und das funktionier ja alles soweit (abgesehen davon das du in deiner GUI nur einen button und keine Eingabe Felder hast).


Wenn man in diesem Fenster etwas ein gibt und auf Berechnen drückt sollte die der Konstruktor die Werte imit Settern in die Vierte Klasse schreiben und den Konstruktor der Dritten Klasse aufrufen der nur für die Berechnung da ist, dieser holt sich die Werte mit Gettern aus der Vierten von der er auch erbt, rechnet das Ergebnis aus und schreibt es mit einem Setter wieder in eine Variablen der Vierten Klasse. Von dort holt sich dan die Zweite Klasse den Wert und gibt in aus.Das macht irgendwie wenig Sinn.
Die Idee an einem Konstruktor ist genau die das er die Werte die die Klasse braucht nimmst und in die lokalen variablen schreibt. Wenn der eh schon von der 4. erbt dann kannst du ja glecih die 4. weg lassen und den 3. einfach mit den variablen die zur berechnung da sind instantiaten. Desweiteren sollte dann die 3. Klasse nicht mit Settern in die 2. schreiben sondern entweder die 2. ruft die berechnung von der 3. auf und kriegt das ergebnis als return oder geted es eifach von der 3.

Ich wuerde das so machen.


KanalGeradeBerechnung berechnung = new KanalGeradeBerechnung(50, 50, 50, 50, 1, 1);

double test = berechnung.calculate();
die KanalBerechnung sieht dann so aus




public class KanalGeradeBerechnung extends Berechnung
{
public KanalGeradeBrechnung(int b, int l, int h, int d, int a)
{
super(a,b,0,l,h,0,0,d,0,0,0,0,0,0,0,0,0); //nun mach auch vererbung Sinn
}


public double calculate()
{

System.out.println(getAnzahl() + " Zahl die in die Berechnung eingelesen wird");

return ( getAnzahl() * ( 2 * getBreite1() * ( getHoehe1() + getLaenge() ) ) ) / 1000000 );

/* setFlaeche hat nur Sinn wenn du nachher den Wert nochmal verwenden willst allerdings wird die selbe Berechnung den Wert ja nicht nochmal verwenden vielmehr kann die Klasse die den Wert requested hat ihn speichern wie du sast Berechnung ist NUR fuer Berechnung nicht als Speicher gedacht */

}
}

und Berechnung



public class Berechnung
{
public Berechnung(double a, double b1, double b2, double l, double h1, double h2, double d1, double d2, double di, double, r, double w, double rp, double rp2, double st, double me, double mf)
{
this.anzahl = a;
this.breite1 = b1;
........... //etc


}
Jetzt bringt dir auch die Berechnung was weil du verschiedene Berechnungen haben kannst die alle von Berechnung erben und alle verschiedene felder setzen und zur berechnung verwenden.

btw es ist konvention das normale methods mit kleinbuchstaben beginnen.


Desweiteren verstehe ich nicht wozu du eine main in KanalGeradeVisuell brauchst.

Hoffe das hilft dir einigermassen weiter.

MFG

TRX
08.06.2009, 19:49
ok erstmal danke dass du dir meinen Code nochmal durchgelesen hast!

Zu dem Konstruktor der Klasse Berechnung:
Ich werde des jetzt also mit parametern umsetzen, ist ja nicht besonders schwer...

Zu der GUI:
Wird noch mehr sollte ja nur ein Beispiel sein.. ;)

Zu der 2.Klasse :
Diese Klasse ist erstmal dafür zuständig die GUI zu erzeugen und danach die Werte aus den Textboxen (die später noch dazu kommen ^^) zu lesen und dem Konstruktor der 3.Klasse (berechnung) zu Übergeben und nachher wieder den return Wert auszugeben.

3.Klasse :
Diese Klasse ist für die Berechnung zuständig.
Dabei speichert sie die Werte erstmal mitHilfe der zuständigen Setter Methoden in die richtigen Variablen

4.Klasse:
Diese Klasse liefert nur die private Variablen und die zugehörigen Getter bzw Setter Methoden

Zu den Packages:
Ich weiß nicht genau was du mit dem was du geschrieben hast meinst..
Waäre schön wenn du das nochmal erläutern könntest.

Zu Berechnung.class:
Soweit ich dass jetzt kapiere übergibst du ,wenn der Konstruktor mit bestimmten Parametern aufgerufen wird diese Parameter an den BasisKonstruktor und dieser schreibt die Werte dann in Variablen...
mal ausprobieren..

Ancient87
08.06.2009, 21:24
ok erstmal danke dass du dir meinen Code nochmal durchgelesen hast!

Zu dem Konstruktor der Klasse Berechnung:
Ich werde des jetzt also mit parametern umsetzen, ist ja nicht besonders schwer...

Zu der GUI:
Wird noch mehr sollte ja nur ein Beispiel sein.. ;)



noted




Zu der 2.Klasse :
Diese Klasse ist erstmal dafür zuständig die GUI zu erzeugen und danach die Werte aus den Textboxen (die später noch dazu kommen ^^) zu lesen und dem Konstruktor der 3.Klasse (berechnung) zu Übergeben und nachher wieder den return Wert auszugeben.

Macht soweit Sinn



3.Klasse :
Diese Klasse ist für die Berechnung zuständig.
Dabei speichert sie die Werte erstmal mitHilfe der zuständigen Setter Methoden in die richtigen Variablen
Ist klar das sie fuer Berechnungen ist und das passt ja auch soweit nur verstehe ich grad nicht wieso du da mit Settern in irgendwelche Variablen speichern willst das macht am besten wie gesagt der Konstruktor



4.Klasse:
Diese Klasse liefert nur die private Variablen und die zugehörigen Getter bzw Setter Methoden

Jepp ist ok nur erklaer mir mal genau den Sinn dahinter.
Imho macht das nur dann Sinn wenn du diese Variablen und und methoden nochmal in einem anderen Kontext verwenden willst. Die idee mit der vererbung waere ja das du eben in der Superclass alles drinnen hast was saemtliche andere Arten von Berechnungen verwenden koennen / werden.
Also wenn du jetzt sagen wir mal z.B eine "TunnelBerechnung" haettest die aehnliche Variablen und Methoden hat wie Kanal dann koenntest du diese eben von "Berechnung" vererben. Wenn du immer nur eine KanalBerechnung haben wirst und nix anderes macht die verervung relativ wenig Sinn (abgesehen davon das sie flexibilitaet fuer die Zukunft erhoeht falls doch noch mal ne andere Art der Berechnung her muss)




Zu den Packages:
Ich weiß nicht genau was du mit dem was du geschrieben hast meinst..
Waäre schön wenn du das nochmal erläutern könntest.

Naja man verwendet normal packages um verschiedene Funktionen / Komponenten von einander zu trennen z.B wenn man eine MVC (Model View COntroller) Architektur hat. Wo es im wesnetlichen 3 Teile gibt Model: haelt saemtliche Daten die benotigt werden, View: Representiert die Daten (koennen mehere verschiedene sein) Controller( handelt user input updated model und aendert die view(s) )

Was ich meinte ist das du ein package GUI hast wo alles drinnen ist Berechnung und GUI. Es funktioniert zwar aber es macht halt wenig Sinn da dann extra packages anzulegen wenn du eh alle Komponenten da rein tust. Aber fuer dein Program sind packages eh nicht benoetigt da relativ klein, waere aber fuer die Zukunft best practice wenn du dich daran gewoehnst verschiedene Komponenten in ihre jeweiligen Packages zu gruppieren in deinem Beispiel jetzt z.B eben "gui" und eventuell "engine" oder "berechnungen" oder sowas. Die Idee ist das all diese Klassen so weit wie moeglich voneinander unabhaengig sind in der Welt des software engineerings als "low coupling" bezeichnet. Aber wie gesagt etwas out of scope fuer dein Projekt :D



Zu Berechnung.class:
Soweit ich dass jetzt kapiere übergibst du ,wenn der Konstruktor mit bestimmten Parametern aufgerufen wird diese Parameter an den BasisKonstruktor und dieser schreibt die Werte dann in Variablen...
mal ausprobieren..[/quote]

Genau weil so Spar ich mir meine Berechnung muehsam mit settern zu laden. Ich weis @ instantiation genau was ich brauchen werde um die Berechnung durchzufuehren also gebe ich das gleich bei der Erstellung mit durch.

Hoffe das hilft dir jetzt weiter, ich bin auch nicht das "end all" der Java Programmierung aber habe jetzt nach 2 Jahren Uni 2 mittelgrosse Projekte damit entwickelt darunter eine Gruppenarbeit bei der eben low coupling wichtig war da jedes Gruppenmitglied an einem anderen Teil des Codes gearbeitet hat und es eben wichtiog war das diese Klassen gut miteinander koennen und so wenig wie moeglich interdependencies haben.

Edit:

Hab mir deinen code nochmal angesehen und fetgestellt das du fast jede variable 2x hast darf ich Fragen wieso sind das Daten fuer einen Kanal oder fuer 2 weil wenns fuer verschiedene Kanaele ist dann waere die (OOP) vorgehensweise das du 2 Kanal Objekte erstellst und diese dann an eine Berechnungsfunktion uebergibst wenn du z.B 2 Sachen vergleichen willst oder so. Genau das ist ja der Sinn der OOP - one real world object - 1 class

MFG Ancient.

TRX
09.06.2009, 06:39
Zitat:
4.Klasse:
Diese Klasse liefert nur die private Variablen und die zugehörigen Getter bzw Setter Methoden

Jepp ist ok nur erklaer mir mal genau den Sinn dahinter.
Imho macht das nur dann Sinn wenn du diese Variablen und und methoden nochmal in einem anderen Kontext verwenden willst. Die idee mit der vererbung waere ja das du eben in der Superclass alles drinnen hast was saemtliche andere Arten von Berechnungen verwenden koennen / werden.
Also wenn du jetzt sagen wir mal z.B eine "TunnelBerechnung" haettest die aehnliche Variablen und Methoden hat wie Kanal dann koenntest du diese eben von "Berechnung" vererben. Wenn du immer nur eine KanalBerechnung haben wirst und nix anderes macht die verervung relativ wenig Sinn (abgesehen davon das sie flexibilitaet fuer die Zukunft erhoeht falls doch noch mal ne andere Art der Berechnung her muss)
Zu deinem Kommentar, das es nur Sinn macht wenn ich noch mehr Klassen die dieselben Variablen nutzen hätte:
Das Programm wird ca. 20 verschiedene Klassen haben wie z.B. KanalGerade,KanalBogen,Übergang Eck_Rund, .....




Was ich meinte ist das du ein package GUI hast wo alles drinnen ist Berechnung und GUI. Es funktioniert zwar aber es macht halt wenig Sinn da dann extra packages anzulegen wenn du eh alle Komponenten da rein tust. Aber fuer dein Program sind packages eh nicht benoetigt da relativ klein, waere aber fuer die Zukunft best practice wenn du dich daran gewoehnst verschiedene Komponenten in ihre jeweiligen Packages zu gruppieren in deinem Beispiel jetzt z.B eben "gui" und eventuell "engine" oder "berechnungen" oder sowas. Die Idee ist das all diese Klassen so weit wie moeglich voneinander unabhaengig sind in der Welt des software engineerings als "low coupling" bezeichnet. Aber wie gesagt etwas out of scope fuer dein Projekt :D
Nicht unbedingt wie du oben siehst kommen da noch einige Klassen mit ihren jeweiligen Visual Klassen dazu...
Ich werd mich mal über diese packages informieren und dann mal gucken wie ich sie am besten einbauen kann.



Hoffe das hilft dir jetzt weiter, ich bin auch nicht das "end all" der Java Programmierung aber habe jetzt nach 2 Jahren Uni 2 mittelgrosse Projekte damit entwickelt darunter eine Gruppenarbeit bei der eben low coupling wichtig war da jedes Gruppenmitglied an einem anderen Teil des Codes gearbeitet hat und es eben wichtiog war das diese Klassen gut miteinander koennen und so wenig wie moeglich interdependencies haben.
Wenigstens hast du das Zeug schon zwei Jahre lang...
Ich hock immernoch in der blöden Schule...
Kurze Frage:
Wie ist das Informatik Studium so? Ich will nämlich in zwei Jahren auch Studieren und ich denke dass ich Informatik nehmen werde...



Hab mir deinen code nochmal angesehen und fetgestellt das du fast jede variable 2x hast darf ich Fragen wieso sind das Daten fuer einen Kanal oder fuer 2 weil wenns fuer verschiedene Kanaele ist dann waere die (OOP) vorgehensweise das du 2 Kanal Objekte erstellst und diese dann an eine Berechnungsfunktion uebergibst wenn du z.B 2 Sachen vergleichen willst oder so. Genau das ist ja der Sinn der OOP - one real world object - 1 class
Variablen 2x :
Du denkst sicer das hoehe1 und hoehe2 dass gleiche wären...sind se aber nicht für bestimmte Modelle brauche ich zwei Höhen, nur so als Bsp
Objekte zu Berechnen übergeben:
Ich würde sagen das geht so nicht weil die Objekte unterscheidlich berechnet werden.. Bsp: KanalGerade und KanalBogen

EDIT:
Hab jetzt mal geändert und kompiliert klappt eigentlich super! Apropo super das schreiben der Werte in die Variablen klappt nach der Methode eigentlich recht gut, kann man so was
auf einfache Weise auch für die getter Methoden initialisieren?

mfg
TRX

Ancient87
09.06.2009, 11:02
Zu deinem Kommentar, das es nur Sinn macht wenn ich noch mehr Klassen die dieselben Variablen nutzen hätte:
Das Programm wird ca. 20 verschiedene Klassen haben wie z.B. KanalGerade,KanalBogen,Übergang Eck_Rund, .....


Nicht unbedingt wie du oben siehst kommen da noch einige Klassen mit ihren jeweiligen Visual Klassen dazu...
Ich werd mich mal über diese packages informieren und dann mal gucken wie ich sie am besten einbauen kann.



K



Wenigstens hast du das Zeug schon zwei Jahre lang...
Ich hock immernoch in der blöden Schule...
Kurze Frage:
Wie ist das Informatik Studium so? Ich will nämlich in zwei Jahren auch Studieren und ich denke dass ich Informatik nehmen werde...

Ich studier in England kann dir nicht sagen wie es in Deutschland aussieht.
Selber machts mir hier viel Spass wobei die workload teilweise Hammer ist haben 600 credits pro semester zu 6 units die jeweils nominal 100 Stunden Studienaufwand haben (manche mehr manche weniger). Ich finde es ein sehr interessantes und belohnendes Studium aber wie gesagt sehr schwierig. Ausserdem ist relativ viel diskrete Mathematik im Spiel programmieren ist nur ein Teil des studiums.



Variablen 2x :
Du denkst sicer das hoehe1 und hoehe2 dass gleiche wären...sind se aber nicht für bestimmte Modelle brauche ich zwei Höhen, nur so als Bsp
Objekte zu Berechnen übergeben:
Ich würde sagen das geht so nicht weil die Objekte unterscheidlich berechnet werden.. Bsp: KanalGerade und KanalBogen
Ok war mir nicht sicher dachte ich frag halt mal nach, dann passt das schon so



EDIT:
Hab jetzt mal geändert und kompiliert klappt eigentlich super! Apropo super das schreiben der Werte in die Variablen klappt nach der Methode eigentlich recht gut, kann man so was
auf einfache Weise auch für die getter Methoden initialisieren?
Freut mich das es klappt. Ad gettern: Wie meinst du das man schneller an die variablen rank kommt ? Du kannst natuerlich (zum Albtraum aller OOP Leute) saemtliche variabeln public machen und direkt drauf schreiben , persoenlich mach ich das ganz gerne fuer eigene kleinere Projekte die nicht nach code bewertet werden weil ich einfach finde das es den code lesbarer macht. btw wenn du eclipse verwendest kannst du dir getter und setter auto generieren lassen - was imho viel Zeit und Nerven spart.

Ancient

TRX
10.06.2009, 08:12
Ad gettern: Wie meinst du das man schneller an die variablen rank kommt ? Du kannst natuerlich (zum Albtraum aller OOP Leute) saemtliche variabeln public machen und direkt drauf schreiben , persoenlich mach ich das ganz gerne fuer eigene kleinere Projekte die nicht nach code bewertet werden weil ich einfach finde das es den code lesbarer macht. btw wenn du eclipse verwendest kannst du dir getter und setter auto generieren lassen - was imho viel Zeit und Nerven spart.


Nicht unbedingt schneller aber könnte man des wie bei den Settern in eine einfache Methode schreiben?
Public setzen wollte ich die Variablen eigentlich nicht, weil alle Bücher die ich bisher gelesen habe sagen dass man den Zugriff auf die Variablen möglichst über getter und setter Methoden machen soll.


Noch ne Frage: Hast du schonmal mit TortoiseSVN gearbeitet??
Mit dem Programm arbeiten wir nämlich demnächst...

Gruß
TRX

Ancient87
10.06.2009, 23:26
Ich versteh noch immer nicht ganz was du meinst sorry.

Ja Tortoise bzw svn command line haben wir fuer das management unseres Gruppen Projekts verwendet.