Czemu scanner nie działa?

0

W ramach nauki obiektowej javy chciałem zrobić prosty kalkulator (dodawanie i odejmowanie), ale problem pojawił się gdy stworzyłem metodę(nie wiem czy to jest metoda bo jeszcze nie ogarniam). Ma ona pobierać od użytkownika int'a w celu wybrania dodawania lub odejmowania

public class menu {
    public int a;
    public int b;
    public int wybor;
    public menu(){

    }
public void  menu()
{
    System.out.println("1.Dodawanie");
    System.out.println("2.Odejmowanie");

}

public void wybor(int wybor1){
    this.wybor=wybor1;
    Scanner wyb=new Scanner(System.in);
    wybor1=Scanner.nextInt();
}


}
0

Nikt nie siedzi w Twojej głowie - jaki problem się pojawił, gdzie te swoje metody wywołujesz i po co Ci parametr wybor1, skoro już masz takie pole klasy?

0

daj cały kod z mainem (ta metodka od której wszystko się zaczyna :D) i na czym polega to że "nie działa"?

1

U mnie Scanner działa.

0

main:

 public class Kalkulator {
    public static void main(String args[])
    {
        System.out.println("WITAJ W KALKULATORZE!!!");
        menu glowne= new menu();
        glowne.menu();
        glowne.wybor(); 

dostaje takiego error'a:

java: non-static method nextInt() cannot be referenced from a static context

2

Napisałeś Scanner.nextInt(), podczas gdy Scanner nie posiada statycznej metody nextInt.

0
Patryk27 napisał(a):

Napisałeś Scanner.nextInt(), podczas gdy Scanner nie posiada statycznej metody nextInt.

nadal nie rozumiem, poprawiłem kod:

 public void wybor() {
        Scanner wyb = new Scanner(System.in);
        wybor = Scanner.nextInt(); 

i ten sam error

1

Co w tym kodzie poprawiłeś odnośnie nieposiadania przez klasę Scanner statycznej metody nextInt?

0

Jak utworzyłeś obiekt typu Scanner o nazwie "wyb" to jego używaj przy wywoływaniu metod klasy Scanner.
wybor = wyb.nextInt() będzie poprawnie

0

Wszystko działa teraz, dzięki :D

0

Mam jeszcze jedną sprawę, nie zakładając nowego tematu. Czy pisanie w ten sposób jest sensowne? Czy da się to jakoś zmienić? Dlaczego pisząc else if wyskakuje mi błąd braku if skoro jest?

 public void wynik1()
{

    if(wybor==1);

        this.wynik=this.a+this.b;

       if(wybor==2) 
       {
           this.wynik=this.a-this.b;
       }
    System.out.println("wynik:"+wynik);

} 

Próbowałem na rożne sposoby, tylko ten wypalił.

0

weź sobie klamry ładnie pisz to Ci się nie będzie mieszało

public void wynik1()
{

if(wybor==1){

    this.wynik=this.a+this.b;

}else if(wybor==2)
{
this.wynik=this.a-this.b;
}
System.out.println("wynik:"+wynik);

}

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