kalkulator

0

Czy ktoś wie dlaczego w metodzie poleProstodadłoscianu oraz objetoscProstopadloscianu w klasie Main w parametrach podkreśla że jest błąd?


package calculator;

public class Calc {
	private double a;
	private double b;
	private double h;

	public double getA() {
		return a;
	}

	public void setA(double a) {
		this.a = a;
	}

	public double getB() {
		return b;
	}

	public void setB(double b) {
		this.b = b;
	}

	public double getH() {
		return h;
	}

	public void setH(double h) {
		this.h = h;
	}
	
	public double objetoscProstopadloscianu(double a, double b, double h) {
		return a * b * h;
	}

	public double poleProstopadloscianu(double a, double b, double h) {
		return (2 * a * b) + (2 * a * h) + (2 * b * h);
	}

	
}
```java

```package calculator;

import java.util.Locale;
import java.util.Scanner;

public class Main {

	private static final int EXIT = 0;
	private static final int POLE = 1;
	private static final int OBJETOSC = 2;

	public static void main(String[] args) {

		Scanner input = new Scanner(System.in);
		input.useLocale(Locale.US);

		int option = -1;
		
		Calc calc = new Calc();
		
		while (option != EXIT) {
			System.out.println("Wybierz opcję!");
			System.out.println("1-Oblicz pole prostopadłościanu");
			System.out.println("2-Oblicz objętość prostopadłościanu");

			System.out.println("Wybierz opcję: ");
			option = input.nextInt();
			input.nextLine();

			switch (option) {
			case POLE:
				System.out.println("Podaj długość boku:");
				calc.setA(input.nextDouble());
				System.out.println("Podaj szeokość:");
				calc.setB(input.nextDouble());
				System.out.println("Podaj wysokość:");
				calc.setH(input.nextDouble());
				calc.poleProstopadloscianu(a, b, h);
				break;
			case OBJETOSC:
				System.out.println("Podaj długość boku:");
				calc.setA(input.nextDouble());
				System.out.println("Podaj szerokość:");
				calc.setB(input.nextDouble());
				System.out.println("Podaj wysokość:");
				calc.setH(input.nextDouble());
				calc.objetoscProstopadloscianu(a, b, h);
				break;
			default:
				System.out.println("Nie ma takiej opcji");

			}

		}
		input.close();

	}
}
0

Nie masz zadeklarowanych zmiennych a, b, h w main:

calc.poleProstopadloscianu(a, b, h);
calc.objetoscProstopadloscianu(a, b, h);
0

Ale te zmienne są w klasie Calc. Mam je powtórzyć?

0

Jeśli masz już je w klasie Calc, to po co przyjmować je jako argumenty formalne (w definicji funkcji) i aktualne (w main)?

Podmień public double poleProstopadloscianu(double a, double b, double h) {public double poleProstopadloscianu() {
calc.poleProstopadloscianu(a, b, h);calc.poleProstopadloscianu();

itp.

0
luki25591 napisał(a):

Ale te zmienne są w klasie Calc. Mam je powtórzyć?

Bardziej pouczające będzie pod inną nazwą, lepiej zrozumiesz zakres obowiązywania zmiennych

0
jackweb napisał(a):

Jeśli masz już je w klasie Calc, to po co przyjmować je jako argumenty formalne (w definicji funkcji) i aktualne (w main)?

Podmień public double poleProstopadloscianu(double a, double b, double h) {public double poleProstopadloscianu() {
calc.poleProstopadloscianu(a, b, h);calc.poleProstopadloscianu();

itp.

Dzięki za pomoc. Moje niedopatrzenie.

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