Java odwołanie do obiektu tablicy

0

Witam wszystkich.
Napisałem program w którym dodaje obiekty do kolejnych elementów listy
ale utknąłem.Nie umiem sie odwołać do pola obiektu imie, typ zwierzecia, waga.Chce zeby użytkownik wpisał sam wymagane wartości.
I mam wątpliwości co do konstruktora klasy Zwierze nie mozna go jakoś do tego wykorzystac?


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


class Zwierze {

     private String imie;
     private String typZwierzecia;
     private double waga;
     Zwierze nastepny;

           Zwierze() {       
                  }    
           Zwierze (String imieK,String typZwierzeciaK,double wagaK){

           this.imie = imieK;
           this.typZwierzecia = typZwierzeciaK;
           this.waga = wagaK;
                }

           public String getimie(){
                 return imie;
           }
           public String gettypZwierzecia(){
                 return typZwierzecia;
           }
           public double getwaga(){
                 return waga;
           }
           public void setImie(String imie){
                 this.imie = imie;
           } 
           public void settypZwierzecia(String typZwierzecia){
                 this.typZwierzecia = typZwierzecia;
           } 
           public void setwaga(int waga){
                 this.waga = waga;
           } 

         }


class Lista{

      Zwierze poczatek;
      Zwierze koniec;
      
             void addFirst(Zwierze zw){
             
                 if (poczatek == null){
                     poczatek = koniec = zw;
                     zw.nastepny = null;
                     }
                 else {
                     zw.nastepny = poczatek;
                     poczatek = zw ; 
                      }
                 }
             void addLast(Zwierze zw){
             
                 if (poczatek == null){
                     poczatek = koniec = zw;
                     zw.nastepny = null;
                     }
                 else {
                     zw.nastepny = null;
                     koniec = zw; 
                      }
                 }                                     
       }

public class polskiezoolista {
        
    
        static String wczytajString() throws IOException, IOException {             

                          BufferedReader wej = new BufferedReader(
                          new InputStreamReader (System.in));
                          String s;
                          s = wej.readLine();
                          return s;
                                  }
    
        
        static int wczytajInt() throws IOException {                   

                          BufferedReader wej = new BufferedReader(
                          new InputStreamReader (System.in));
                          String s;
                          int numer;
                          s = wej.readLine();
                          numer = Integer.parseInt(s);
                          return numer;
                                  }
     
        
      public static void main(String[] args) throws IOException   {
                
           Lista ListaZwierzat = new Lista();
           
           System.out.println("Naciśnij 1 lub 2 w zależnośći od tego co chcesz zrobić.");
           System.out.println();
           System.out.println("1-Dodaj zwierze na początku listy: ");
           System.out.println("2-Dodaj zwierze na końcu listy: ");
           System.out.println();
           
           int nrOpcji = wczytajInt();
           switch (nrOpcji){
           
                 case 1:
                 
                        ListaZwierzat.addFirst( new Zwierze());
                        
                        
                        break;
                 
                 case 2:
                 
                 ListaZwierzat.addLast(new Zwierze());
     
                 break;
                 
                 default:
                     
                         System.out.println("Wybrałeś nieprawidłowy numer.");
                 
                            } 
                                                                                                   
        }

 }
0

Cześć,

Napisałem program w którym dodaje obiekty do kolejnych elementów listy
ale utknąłem.

Zastanów się czy w twoim programie, nie lepiej wykorzystać gotową Listę np. ArrayList niż tworzyć obiekt "Lista" (nie wiem jakie będą dalej rozwijany ten program)

W celu wykorzystania konstruktora parametrowego musisz mieć te parametry wcześniej można to rozwiązać tak jak w main-ie poniżej.

Odnośnie

Nie umiem się odwołać do pola obiektu imie, typ zwierzecia, waga

W twoim programie można odwołać się np: System.out.println(listaZwierzat.poczatek.getimie());

to działa ponieważ poczatek ma dostęp pakietowy gdyby poczatek by private to powinieneś storzyć getter-y i wtedy listaZwierzat.getPoczatek().getImie().

public static void main(String[] args) throws IOException   {
               
           Lista listaZwierzat = new Lista();
           String imie, typ;
           System.out.println("podaj imię zwierza");
           imie = wczytajString();
           System.out.println("podaj typ");
           typ = wczytajString();
           
           double waga = -1;
           do {
	           System.out.println("podaj wage");
	           String wagaStr = wczytajString();
	           try {
	        	  waga  = Double.parseDouble(wagaStr);
	           } catch(NumberFormatException ex) {
	        	   System.out.println(waga);
	           }
           } while (waga == -1);
           
           
           System.out.println("Naciśnij 1 lub 2 w zależnośći od tego co chcesz zrobić.");
           System.out.println();
           System.out.println("1-Dodaj zwierze na początku listy: ");
           System.out.println("2-Dodaj zwierze na końcu listy: ");
           System.out.println();
           
           int nrOpcji = wczytajInt();
           
           Zwierze zwierze = new Zwierze(imie, typ, waga);
           
           switch (nrOpcji){
                 case 1:
                        listaZwierzat.addFirst( zwierze);
                        break;
                 
                 case 2:
                	 listaZwierzat.addLast(zwierze);
                	 break;
                 default:
                         System.out.println("Wybrałeś nieprawidłowy numer.");
           }

           System.out.println(listaZwierzat.poczatek.getimie());
	   }

Na koniec przestrzegaj konwencji tworzenia nazw. Bo zdarzają się sytuacji nie przestrzegania konwencji
getimie() -> getImie()
Lista ListaZwierzat = new Lista(); -> Lista listaZwierzat = new Lista();

0

Dzięki za rady:)

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