Lista obiektów typu klasa.

0

Witam,

Po króce opis co chce zrobić. Chce aby w Klasa2, znajdowała się lista obiektów typu Klasa1. Utworzyłem wszystko co trzeba, jednak teraz w funkcji main musze wypełnić Klasa1 (zrobione), i wywołać Klasa2 i wypełnić liste obiektami typu Klasa1 (tu jest problem). Mam nadzieje że zrozumiecie o co mi chodziło, jeżeli nie to będę się starał objaśnić dokłądniej ale myśle, że po przejrzeniu kodu każdy zrozumie o co chodzi.

import java.util.*;
import javax.swing.*;

class Klasa1{
    private int numer;
    private String napis;
    
    public Klasa1(int startNumer, String startNapis){
        
            numer=startNumer;
            napis=startNapis;
    }
    
    public void setNumer(int numer){
        this.numer=numer;
    }
    public void setNapis(String napis){
        this.napis=napis;
    }
    
    public int getNumer(){
        return numer;
    }
    public String getNapis(){
        return napis;
    }
}



class Klasa2{
    private List<Klasa1> listaKlasa1=new ArrayList<Klasa1>();
    
    public Klasa2(List<Klasa1> startListaKlasa1){
        listaKlasa1=startListaKlasa1;
    }
    
    public List<Klasa1> getListaKlasa1(){
        return listaKlasa1;
    }
}



public class KlasaGlowna {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        String liczba=JOptionPane.showInputDialog("Podaj ilosc: ");
        int liczbaLiczba=Integer.parseInt(liczba);
        
        Klasa1[] klaska1=new Klasa1[liczbaLiczba];
        
        for (int i = 0; i < klaska1.length; i++) {
            String startNumerString=JOptionPane.showInputDialog("Podaj numer: ");
            int startNumer=Integer.parseInt(startNumerString);
            String startNapis=JOptionPane.showInputDialog("Podaj napis: ");
            
            klaska1[i]=new Klasa1(startNumer, startNapis);
        }
        
        for (int i = 0; i < klaska1.length; i++) {
            System.out.println(klaska1[i].getNumer());
            System.out.println(klaska1[i].getNapis());
            System.out.println();
        }
    }
}

To jest kod który napisałem. Udzielono mi rady abym dopisał w klasie main linijkę:
"
Klasa2 klaska2 = new Klasa2( Arrays.asList( klaska1 ) ) ;
System.out.println(klaska2.getListaKlasa1()); //wyświetl


 Wszystko się kompiluje, ale zamiast danych które wpisuje:
-Podaj liczbe: 1;
-Podaj numer: 123;
-Podaj napis: dupa;

Wyskakuje mi w konsoli:
"[Klasa1@a83b8a]".
0

Ja skopiowałem kod do eclipse i mi wyskakują dane jakie wpisałem

ilość : 1
numer : 1
napis : dupa

konsola :

1
dupa

1

A co by ci miało wypisać? Tak wygląda wypisanie listy zwyczajnie. Jak chcesz wypisać elementy listy to po nich przeiteruj i je wypisz.

0
Shalom napisał(a):

A co by ci miało wypisać? Tak wygląda wypisanie listy zwyczajnie. Jak chcesz wypisać elementy listy to po nich przeiteruj i je wypisz.

Wystarczy Arrays.toString(blabla[]);

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