Thread View: pl.comp.lang.java
2 messages
2 total messages
Started by Grzegorz
Sat, 16 Mar 2013 20:55
Poczatkujacy - program nie dziala tak jak powinien.
Author: Grzegorz
Date: Sat, 16 Mar 2013 20:55
Date: Sat, 16 Mar 2013 20:55
104 lines
3002 bytes
3002 bytes
Witam.
Zacząłem uczyć się programowania i podczas nauki natrafiłem na błąd w moim
programie i nie wiem jak go rozwiązać a mianowicie program działał, tylko
mam problem z podawaniem parametrów program. Z założenia powinien przyjmować
parametry A i B tylko raz i wyliczać wszystkie działania , a niestety jakoś
się zapętla i prosi o wskazanie danych dla każdego zadania osobno . Mógłby
ktoś pomóc w rozwiązaniu tego problemu . Poniżej załączam kod.
--------------------------------------
import TextIO.*;
public class wyniki {
int x;
int y;
public wyniki()
{
System.out.println("Podaj A");
x = TextIO.getInt();
System.out.println("Podaj B");
y = TextIO.getInt();
}
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(" Wyniki działąń");
liczby dod =new dodawanie();
liczby od =new odejmowanie();
liczby mnoz =new mnozenie();
liczby dziel =new dzielenie();
System.out.println("Wynik dodawania "+dod.c);
System.out.println("Wynik odejmowania "+od.c);
System.out.println("Wynik mnozenia "+mnoz.c);
System.out.println("Wynik dzielenie "+dziel.c);
}
}
---------------------------------------------------------
public class liczby {
int a;
int b;
int c;
public liczby() {
wyniki w =new wyniki();
a=w.x;
b=w.y;
}
}
---------------------------------------------------------------
public class dodawanie extends liczby{
public dodawanie()
{
c = a +b;
}
}
-----------------------------------------------------------------
public class dzielenie extends liczby {
public dzielenie() {
c = a/b;
}
}
--------------------------------------------------------------------
public class mnozenie extends liczby{
public mnozenie() {
c =a*b;
}
}
---------------------------------------------------------------
public class dodawanie extends liczby{
public dodawanie()
{
c = a +b;
}
}
Re: Poczatkujacy - program nie dziala tak jak powinien.
Author: gorudonu
Date: Sun, 17 Mar 2013 01:51
Date: Sun, 17 Mar 2013 01:51
18 lines
2303 bytes
2303 bytes
Program sie nie zapetla. Tylko widze ze w konstruktorze klasy "liczby" (btw klasy z duzej litery) tworzysz nowy obiekt klasy "wyniki". Klasa "wyniki" posiada konstruktor, ktory wczytuje dane z klawiatury. Nastepnie w metodzie main tworzysz cztery obiekty ktore dziedzicza po klasie liczby (czyli uruchamiany jest cztery razy konstruktor "liczby"). Dlatego program pyta sie cztery razy. Cwiczenie pewnie mialo posluzyc jako nauka polimorfizmu wiec, czemu nie zrobic tak:
abstract class Liczy {
protected int a;
protected int b;
//gettery i settery
}
nastepnie w kazdej klasie w konstruktorze podawac te dwa parametry lub poprzez te propertisy. a liczby zaczytywac tylko raz w metodzie main.
innym sposobem jest zrobienie Liczby jako interface oraz dadanie metody
public void setNumbers(int a, int b);
wtedy kazda klasa implementujace ten interface bedzie musiala tez miec defeinicje tej metody.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads