Problem z umiejscowieniem zmiennych.
-
- Początkujący
- Posty: 6
- Dołączył(a): poniedziałek, 9 listopada 2015, 22:03
Problem z umiejscowieniem zmiennych.
Witam, mam problem ze zmiennymi waga oraz wzrost, chciałbym dać możliwość użytkownikom wpisania ich wartości, natomiast w przypadku ulokowania zmiennych w klasie Bmi ciągle wyrzuca mi błąd. Nie ma tego problemu, gdy są w nawiasach main, natomiast w takim przypadku, nie mam możliwości odniesienia się do nich w klasie Bmi. Proszę o pomoc, w czym tkwi problem.
package wczytywanie.pkgint;
import java.util.*;
public class WczytywanieInt {
public static void main(String[] args)
{
Bmi a = new Bmi();
System.out.println(a.obliczBmi(waga, wzrost));
}
}
class Bmi
{
Scanner dane = new Scanner(System.in);
double waga;
waga = dane.nextDouble();
double wzrost;
wzrost = dane.nextDouble();
Bmi()
{
}
Bmi(double waga, double wzrost)
{
this.waga = waga;
this.wzrost = wzrost;
}
double obliczBmi(double waga, double wzrost)
{
this.waga = waga;
this.wzrost = wzrost;
return waga/(wzrost*2);
}
}
package wczytywanie.pkgint;
import java.util.*;
public class WczytywanieInt {
public static void main(String[] args)
{
Bmi a = new Bmi();
System.out.println(a.obliczBmi(waga, wzrost));
}
}
class Bmi
{
Scanner dane = new Scanner(System.in);
double waga;
waga = dane.nextDouble();
double wzrost;
wzrost = dane.nextDouble();
Bmi()
{
}
Bmi(double waga, double wzrost)
{
this.waga = waga;
this.wzrost = wzrost;
}
double obliczBmi(double waga, double wzrost)
{
this.waga = waga;
this.wzrost = wzrost;
return waga/(wzrost*2);
}
}
Re: Problem z umiejscowieniem zmiennych.
Hej,
Proszę wklej kod używając znaczników code, oraz pokaż jaki błąd Ci wypisuje.
Pozdrawiam,
Arek
Proszę wklej kod używając znaczników code, oraz pokaż jaki błąd Ci wypisuje.
Pozdrawiam,
Arek
-
- Początkujący
- Posty: 6
- Dołączył(a): poniedziałek, 9 listopada 2015, 22:03
Re: Problem z umiejscowieniem zmiennych.
Code: Zaznacz cały
package wczytywanie.pkgint;
import java.util.*;
public class WczytywanieInt {
public static void main(String[] args)
{
Bmi a = new Bmi();
System.out.println(a.obliczBmi(waga, wzrost));
}
}
class Bmi
{
Scanner dane = new Scanner(System.in);
double waga;
waga = dane.nextDouble();
double wzrost;
wzrost = dane.nextDouble();
Bmi()
{
}
Bmi(double waga, double wzrost)
{
this.waga = waga;
this.wzrost = wzrost;
}
double obliczBmi(double waga, double wzrost)
{
this.waga = waga;
this.wzrost = wzrost;
return waga/(wzrost*2);
}
}
Re: Problem z umiejscowieniem zmiennych.
Hej Twój kod powinien wyglądać inaczej:
inicjalizację wartości powinieneś robić w konstruktorach to raz, a dwa w tym miejscu:
ani zmienna waga, ani wzrost nie istnieje. Musisz podać jakąś konkretną wartość. Powinieneś również nadpisać funkcję obliczBmi i stworzyć taką, która nie przyjmuje argumentów, a korzysta z tych co już zostały przysłane z konstruktora.
Pozdrawiam,
Arkadiusz W.
Code: Zaznacz cały
class Bmi
{
double waga;
double wzrost;
Bmi()
{
Scanner dane = new Scanner(System.in);
waga = dane.nextDouble();
wzrost = dane.nextDouble();
}
Bmi(double waga, double wzrost)
{
this.waga = waga;
this.wzrost = wzrost;
}
double obliczBmi(double waga, double wzrost)
{
this.waga = waga;
this.wzrost = wzrost;
return waga/(wzrost*2);
}
}
Code: Zaznacz cały
System.out.println(a.obliczBmi(waga, wzrost));
Pozdrawiam,
Arkadiusz W.
-
- Początkujący
- Posty: 6
- Dołączył(a): poniedziałek, 9 listopada 2015, 22:03
Re: Problem z umiejscowieniem zmiennych.
Rozumiem, dziękuję bardzo za pomoc.
Wiem, że tak powinno to wyglądać, natomiast nie bardzo wiem, jak to wykonać. Czy mógłbyś poświęcić chwilę i przedstawić taki kod?Morfidon napisał(a):Powinieneś również nadpisać funkcję obliczBmi i stworzyć taką, która nie przyjmuje argumentów, a korzysta z tych co już zostały przysłane z konstruktora.
Re: Problem z umiejscowieniem zmiennych.
No zrób dokładnie to co napisałem. Stwórz metodę, która nie ma argumentów, a korzysta z właściwości pól. Nie mogę napisać tego za Ciebie bo się nic nie nauczysz. To są podstawy. Po prostu stwórz dokładnie to co napisałem. Przecież to co zrobiłeś jest teoretycznie trudniejsze.
-
- Początkujący
- Posty: 6
- Dołączył(a): poniedziałek, 9 listopada 2015, 22:03
Re: Problem z umiejscowieniem zmiennych.
Code: Zaznacz cały
double obliczenie(Bmi a)
{
double wynik = waga/(wzrost*2);
return wynik;
}
Code: Zaznacz cały
double obliczenie()
{
double wynik = waga/(wzrost*2);
return wynik;
}
Re: Problem z umiejscowieniem zmiennych.
Pamiętaj proszę o tym, że ja nie jestem kompilatorem i jeśli wystąpi błąd to wypisz jaki to błąd bo mam za mało kontekstu, by się domyślić.
Masz zrobić po prostu drugą metodę o takiej samej nazwie, ale bez argumentów i korzystać z danych, które będą stworzone w konstruktorze.
Masz zrobić po prostu drugą metodę o takiej samej nazwie, ale bez argumentów i korzystać z danych, które będą stworzone w konstruktorze.
Code: Zaznacz cały
double obliczBmi()
{
return this.waga/(this.wzrost*2);
}
-
- Początkujący
- Posty: 6
- Dołączył(a): poniedziałek, 9 listopada 2015, 22:03
Re: Problem z umiejscowieniem zmiennych.
Przy zastosowaniu metody, którą wrzuciłeś, pojawia się następujący bląd:Code: Zaznacz cały
double obliczBmi() { return this.waga/(this.wzrost*2); }
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextDouble(Scanner.java:2413)
at poprawiony.kod.bmi.Bmi.<init>(PoprawionyKodBmi.java:32)
at poprawiony.kod.bmi.PoprawionyKodBmi.main(PoprawionyKodBmi.java:11)
Java Result: 1
Cały kod wygląda natomiast następująco:
Code: Zaznacz cały
package poprawiony.kod.bmi;
import java.util.*;
public class PoprawionyKodBmi {
public static void main(String[] args)
{
Bmi a = new Bmi();
System.out.println(a.obliczanieBmi());
}
}
class Bmi
{
double waga;
double wzrost;
Bmi()
{
Scanner dane = new Scanner(System.in);
System.out.println("Podaj wagę i naciśnij Enter:");
waga = dane.nextDouble();
System.out.println("Podaj wzrost i naciśnij Enter:");
wzrost = dane.nextDouble();
}
Bmi(double waga, double wzrost)
{
this.waga = waga;
this.wzrost = wzrost;
}
double obliczenie(Bmi a)
{
// this.waga = waga;
// this.wzrost = wzrost;
double wynik = waga/(wzrost*2);
return wynik;
}
double obliczanieBmi()
{
return this.waga/(this.wzrost*2);
}
}
Re: Problem z umiejscowieniem zmiennych.
Spróbuj tak:
Code: Zaznacz cały
Scanner dane = new Scanner(System.in);
System.out.println("Podaj wagę i naciśnij Enter:");
this.waga = Double.parseDouble(dane.nextLine());
System.out.println("Podaj wzrost i naciśnij Enter:");
this.wzrost = Double.parseDouble(dane.nextLine());