Przekazanie zmiennych do konstruktora PODSTAWY

2016-07-20 23:29
0

Witam, mam problem z przesłaniem zmiennych wpisanych przez użytkownika do konstruktora.
Program nie wyrzuca błędu ale wynik to 0 a taki nie powinien być.

import java.util.Scanner;

public class Prostokat {
    static int a;
    static int b;
    Prostokat(int a, int b){
        this.a = a;
        this.b = b;
    }

    void wczytajLiczby(){
        Scanner scanner = new Scanner(System.in);
        System.out.println("Podaj bok a: ");
        int a = scanner.nextInt();
        System.out.println("Podaj bok B: ");
        int b = scanner.nextInt();

    }   

    double pole(){
        return a*b;
    }

    public static void main(String[] args) {
        Prostokat p1 = new Prostokat(a,b);
        p1.wczytajLiczby();
        System.out.println(p1.pole());
    }

}

Pozostało 580 znaków

2016-07-20 23:48

Szybka poprawka

        //int a = scanner.nextInt();
        a = scanner.nextInt();
        System.out.println("Podaj bok B: ");
        //int b = scanner.nextInt();
        b = scanner.nextInt();
>>>javac Prostokat.java && echo 6 111|java Prostokat
Podaj bok a:
Podaj bok B:
666.0

Pozostało 580 znaków

2016-07-20 23:53
1

Powinno wyglądać to inaczej :

/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class rect
{
    private int a;
    private int b;
    public rect(int a, int b)
    {
        this.a = a;
        this.b = b;
    }
    public void ShowVariables()
    {
        System.out.println(a + " " + b);
    }
}
class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        rect rectangle1 = new rect(4, 5);
        rectangle1.ShowVariables();
    }
}

https://ideone.com/4IAjzX

edytowany 1x, ostatnio: bogdans, 2016-07-21 07:54

Pozostało 580 znaków

2016-07-21 00:35
1
int a = scanner.nextInt();

Przecież tutaj wczytujesz do zmiennej lokalnej o nazwie a, która przesłania zmienną klasową o tej samej nazwie.

Prostokat p1 = new Prostokat(a,b);

Zagadka: jakie wartości mają a i b w tym miejscu?

Pozostało 580 znaków

2016-07-21 22:31
0

Dzięki za pomoc :) głupi błąd.

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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