Witam !
Mam pytanie czy można połączyć Scannera i get ? Dokładniej mówiąc korzystam z toString do wyświetlenia info i chce aby dane zaczytane od użytkownika jakoś łączyły się z getterem. Przepraszam z góry za chaotyczny opis sytuacji. Pozdrawiam
Wczytaj dane ze skanera.
Wrzuć je przez setter/konstruktor.
Pobieraj dane przez getter.
Mógłbyś podpowiedzieć jak powinien wyglądać taki konstruktor, jestem jeszcze początkującym "Javowcem" :D ?
Konstruktor powinien oczekiwać typu, jaki chcesz mu przekazać, a następnie wrzucić to w jakieś swoje pole tak, aby można było je pobrać za pomocą gettera.
Nadal nie rozumiem mam taki oto kod (jakbyś coś ulepszył to także chętnie posłucham) jak wrzucić to przez settera/konstruktor, próbowałem ale głupoty wychodziły więc wolałem usunąć żeby wiochy nie narobić :p
package pracaDomowa;
import java.util.Scanner;
public class zwierzak
{
private String kolorSiersci;
private int iloscLap;
private String nazwa;
private String gatunek;
Scanner x = new Scanner(System.in);
public zwierzak()
{
System.out.println("Podaj kolor siersci");
String kS = x.nextLine();
System.out.println("Podaj nazwe zwierzaka");
String nazwa = x.nextLine();
System.out.println("Podaj gatunek zwierzaka");
String gatunek = x.nextLine();
System.out.println("Podaj ilość łap"); //jak było na drugim miejscu po starcie i dojściu do nZ i gZ pojawiało się razem. Why ?
int iloscLap = x.nextInt();
if (iloscLap < 0 )
{
System.out.println("Zwierze musi posiadać jakieś łapki!");
}
}
public void setkolorSiersci(String kS)
{
kolorSiersci = kS;
}
public String getkolorSiersci()
{
return kolorSiersci;
}
public void setiloscLap(int iL)
{
iloscLap = iL;
}
public int getiloscLap()
{
return iloscLap;
}
public void setnazwa(String n)
{
nazwa = n;
}
public String getnazwa()
{
return nazwa;
}
public void setgatunek(String g)
{
gatunek = g;
}
public String getgatunek()
{
return gatunek;
}
@Override
public String toString()
{
return getkolorSiersci()+" "+getiloscLap()+" "+getnazwa()+" "+getgatunek();
}
}
Pomijając wszelkie wzorce projektowe, w konstruktorze nie twórz zmiennych lokalnych, a używaj pól klasy/ setterów. Czyli zamiast String nazwa = x.nextLine(); samo nazwa = x.nextLine(); lub setnazwa(x.nextLine()); (chociaż to nawet nie jest pełnoprawny setter).
A kod wstawiamy w znacznikach code.