🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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.
#153784
Author: Grzegorz
Date: Sat, 16 Mar 2013 20:55
104 lines
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.
#153785
Author: gorudonu
Date: Sun, 17 Mar 2013 01:51
18 lines
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