Pierwszy program figury geometryczne.

0

OK na dziś dziękuję za porady :) Już coś takiego miałem (albo nie) wyżej i nie o to mi chodzi, poszukam w książce ;)

0
paski zielone napisał(a):

OK na dziś dziękuję za porady :) Już coś takiego miałem (albo nie) wyżej i nie o to mi chodzi, poszukam w książce ;)

Ja to napisałem żebyś zobaczył różnice i jak to wygląda na przykładzie, bo Twoje pytania dotyczyły właśnie takich rzeczy.

0

No tak właśnie sobie wyjaśniłem coś i skorzystałem z Twojej podpowiedzi. W książce napisali, że można użyć dwóch konstruktorów jeden z wartościami drugi bez. No ale nie przedstawili tego ani nic na tym zakończyli.
W pierwszym konstruktorze mam wpisane wartości 5 i 1 i żadnych innych nigdzie już nie mam wpisanych a pomimo to wyświetla mi 0 i 0

0
public class Figura {
    String imie;
    double z;
    double x;

    // konstuktor
    public Figura(String imie, double z, double x) {
        this.imie = "figurka";
        this.z = 5;
        this.x = 1;
           }
    public Figura() {
        this.imie = imie;
        this.z = z;
        this.x = x;
    }

    // metoda
    {
System.out.println("z = "+ this.z  +" x= " +this.x);}
}
public class Main {
    public static void main(String args[]){

for (;;){
        Scanner in = new Scanner(System.in);

    ArrayList<Figura> list = new ArrayList<>();

    out.print("Wybierz opcję : 1-Trojkat, 2-Prostokat, 0 - Exit: ");

        int choice = in.nextInt();
        switch (choice){
            case 1 :

                Figura[] trojkat = new Figura[3];
                trojkat[0] = new Figura();

                break;

            case 2:
                Figura[] prostokat = new Figura[3];
                prostokat[0] = new Figura();

                break;
            case 0: exit(0);
                 default: System.out.println("Cos poszlo nie tak!");
list.add(new Figura());

           // System.out.println("Suma długość po X:"+(trojkat[0].x +prostokat[0].x ) );

    }
    Figura[] trojkat = new Figura[list.size()];
    list.toArray(trojkat);
}}}

Edit:
Jak to ogarnę to sobie (sam) poszukam jak zrobić, żeby wpisać tam wartości jako użytkownik.
Ciekawe, że w poradnikach do javy widzę przykłady w których wartości są już wpisane w programie. A nie ma takich przykładów, żeby coś wpisać, zepsuć, pobawaić się, Taki już jakby prawdziwy program.
Przerobiłem C++ na YT z kanału "pasja informatyki" i tam koleś dawał fajne przykłady programów w których już jako user można było coś wpisać a nie tylko patrzeć. ( Tak ja to widzę)

0

Ok, naprowadzę Cię na odpowiedź.
Tworzysz sobie nowe obiekty konstruktorem domyślnym Figura(); jakie wartości masz dla x i z tworząc obiekt w ten sposób?

Edit: Nie ,to bez sensu, przeanalizuj kod który Ci napisałem bo robisz dalej te same błędy zobacz DOKŁADNIE jak działają konstruktory w tym co napisałem, pozmieniaj wartości i zobacz o co chodzi, nie znasz po prostu zasad działania. Inaczej tego wytłumaczyć się nie da bo cały problem tkwi w tym, że nie wiesz jak działają konstruktory i w jaki sposób się ich używa. Jeśli wywołujesz konstruktor bez argumentów czyli Figura() i przypisujesz x i z robiąc this.x = x, gdzie na samej górze w klasie nie nadajesz początkowych wartości to wiadomo, że nic poza wartościami innymi niż 0 nie będzie. Serio weź sobie to do serca i przeczytaj jakiś poradnik.W tym czasie co coś tworzysz dawno byś już wiedział o co chodzi czytając cokolwiek zamiast zadawać te same pytania na forum.

0

Edytowałem wyżej post - dopisałem komentarz.
No w Main nie mam żadnych wpisanych bo te wartości ma sobie zabrać z konstruktora skoro nie ma podanych.
A w klasie nie mam wpisanych wartości ( nie wiem do czego one służą i jak to nazwać) bo myślę, że od tego jest konstruktor żeby do konstruktora wpisywać.

0

Może to będzie wyglądać infantylnie ale tutaj...

1 użytkowników online, w tym zalogowanych: 0, gości: 1