Hallo,
ich habe so eine Aufgabe gekriegt:
Ein el. Widerstand wird im einfachsten Fall durch seinen ohmischen Widerstandwert und seiner el. Leistung als Kenngrössen bestimmt.
Ich muss eine Klasse schreiben, welche als Objekt die Daten eines Widerstanes aufnehmen kann. In dieser Klasse sollen die Kenngrößen als Attribute gespeichert werden. Diese Attribute werden über den Konstruktor initialisierd.
Die Klasse enthält im weiteren für jedes Attribut eine get- und set- Methode.
dann muss ich eine Java-Anwendung schreiben, welche Werte für Widerstandswert und Leistung eines el. Widerstandes einliest und in dem Widerstand Objekt speichert. Dann muss ich auch 3 Widerstande in einem Array speichern.Dafür muss ich eine Schleife zum Einlesen der Kenngroßen benutzen.
Die Anwendung liest danach die Daten aus den Widerstand Objekten aus, um sie dann auf den Bildschirm auszugeben.
also ich weis so ungefähr was die won mir wollen
1. muss ich ein "class Widerstand" bauen oder
ne
ich habe new Prog Angefangen
also hier habe ich nur fur einen Widerstand gemacht.
Ich weis nicht wie ich jetzt Array richtig machen kann, für 3 Widerstande???
Code:
import javax.swing.*;
class Widerstand
{
double w1;
double p1;
double getW1(){
return w1;
}
double getP1(){
return p1;
}
void setW1(double w1){
this.w1=w1;
}
void setP1(double p1){
this.p1=p1;
}
}
class WiderstandApp1{
public static void main(String args[]){
double w1,p1;
Widerstand w; //Dekloration der Variable
w=new Widerstand();//Ezeugung des Objektes
String w2=JOptionPane.showInputDialog(null,"Geben Sie der Widerstand ein");
w1=Double.parseDouble(w2);
String p2=JOptionPane.showInputDialog(null,"Geben Sie die Leistung ein");
p1=Double.parseDouble(p2);
w.setW1(w1);
w.setP1(p1);
JOptionPane.showMessageDialog(null,"Widerstand W1="+w.getW1()+"Ohm"+"\n"+"Leistung P1= "
+w.getP1()+"Watt");
System.exit(0);
}
}
Und ich habe problemm mit dem Konstruktor.
Hier denke ich, benutze ich Standart Konstruktor oder denke ich falsch
Wenn du deine Klasse Wiederstand so schreibst wie angegeben machst du Gebrauch vom Standardkonstruktor:
Code:
Wiederstand()
{
}
Du solltest aber auch einen allgemeinen Konstruktor definieren, wie von Bleiglanz gezeigt. Dann musst du den oben beschriebenen Standard-Konstruktor aber auch selbst noch definieren, wenn du auf ihn zugreifst (dann wird der nicht automatisch vom Compiler "zur Verfügung gestellt").
Wo ist das Prob beim Prog ?
Für 3 Widerstände musst du ganz normal ein Array anlegen:
Code:
import javax.swing.*;
class WiederstandApp1
{
public static void main(String args[])
{
double w1,p1;
Wiederstand[] w=new Wiederstand[3];
w[0] = new Wiederstand();
w[1] = new Wiederstand();
w[2] = new Wiederstand();
String w2=JOptionPane.showInputDialog(null,"Geben Sie der Wiederstand ein");
w1=Double.parseDouble(w2);
String p2=JOptionPane.showInputDialog(null,"Geben Sie die Leistung ein");
p1=Double.parseDouble(p2);
w[0].setW1(w1);
w[0].setP1(p1);
JOptionPane.showMessageDialog(null,"Wiederstand W1="+w[0].getW1()+"Ohm"+"\n"+"Leistung P1= "
+w[0].getP1()+"Watt");
System.exit(0);
}
}
Hier wurde nur für ein Objekt das ganze eingelesen, mit entspr. Schleife kannst das noch ändern..
Ich habe schon so wie du geschriebeb hast und anders versucht es zu machen
aber ich kriege immer ein Fehler von Compiler
C:\Java\Praktikum\Versuch5\WiderstandApp3.java:33: Widerstand(double,double) in Widerstand cannot be applied to ()
w[0] =new Widerstand();
^
wo ist Fehler?
Code:
class WiderstandApp3
{
public static void main(String args[])
{
double w1,p1;
Widerstand[] w=new Widerstand[3];
w[0] =new Widerstand();
w[1]=new Widerstand();
w[2]=new Widerstand();
String w2=JOptionPane.showInputDialog(null,"Geben Sie der Widerstand ein");
w1=Double.parseDouble(w2);
String p2=JOptionPane.showInputDialog(null,"Geben Sie die Leistung ein");
p1=Double.parseDouble(p2);
w[0].setW1(w1);
w[0].setP1(p1);
JOptionPane.showMessageDialog(null,"Widerstand W1="+w[0].getW1()+"Ohm"+"\n"+"Leistung P1= "
+w[0].getP1()+"Watt");
System.exit(0);
}
}
Also weiß ich nicht
auch für ein Widerstand funkzt nicht, ich denke ich bin zu blöd für....
Hallo Leute,
ich wollte nichts böses machen.
Ich habe einfech meine Fragen redaktiert und dass wars.
mic_checker & Illuvatar
sorry
to mac_checker
muss was immer in Klammern stehen wie heir
w = new Widerstand(w1,p1)
oder das steht nur dann, wenn ich in Konstruktor auch in Klammern was definiere???
Kann ich mein Programm so umschreiben, dass ich z.B. 3 Arrays reserwiere und Ausgabe nicht sofort mache,
sondern nachdem ich alle 3 Parametern für meine Widerstände eingebe und nur dann werden alle 3 ausgegeben.???
1. Reserwierung 3 Arrays=>Eingabe des Wertes(alle 3)=>Ausgabe(alle 3 zusammen)??
Vielleicht weil deine Methoden nicht setWiderstand und setLeistung heissen, sondern setWiderstand1 u. setLeistung1 ? Hab das gerad erst gesehen, weil du in dem Post vorher das geschrieben hast, ging ich davon aus das die so heissen.....oben steht aber ne 1 dahinner.
:autsch:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:
ich bin ein alter blinder Fox,
Danke
ich gehe schlafen.
chao