显示包含具有私有字段的另一个类的对象的ArrayList的内容

时间:2018-06-04 04:15:30

标签: java arraylist

如果对象的内容位于另一个类的私有字段中,如何从数组列表中打印相册标题?

显示方法

public void displayAllAlbums() {

   for (int i = 0; i < AlbumList.size(); i++) {

        System.out.println(AlbumList.get(i));
    }
}

具有私有变量标题和价格的专辑类。

class Album {

    private String title;
    private double price;

    Album(String title, double price) {

        this.title = title;
        this.price = price;
    }

    public String getTitle() {
        return this.title;
    }

    public double getPrice() {
        return this.price;
    }
}

Cart Class将歌曲添加到arraylist也可以获得总数

import java.util.*;

public class Cart {

List<Album> AlbumList = new ArrayList<Album>();

将专辑放入addAlbum方法的主要方法

public static void main(String[] args) {
    Cart cart1 = new Cart();

    Album album1 = new Album("ye", 20);
    Album album2 = new Album("MBDTF", 16);

    cart1.addAlbum(album1);
    cart1.addAlbum(album2);

    System.out.println(cart1.getTotalAlbums());
    cart1.displayAllAlbums();

}

将专辑添加到arralist

public void addAlbum(Album album) {
    AlbumList.add(album);
}

不确定如何显示相册

public void displayAllAlbums() {
    for (int i = 0; i < AlbumList.size(); i++) {

        System.out.println(AlbumList.get(i));
    }
}

3 个答案:

答案 0 :(得分:0)

这样做。

public void displayAllAlbums() {
    for (int i = 0; i < AlbumList.size(); i++) {
        Album album = AlbumList.get(i)
        System.out.println(album.getTitle() + " "+ album.getPrice());
    }
}

你的Arraylist的对象实际上是专辑对象。因此,当通过AlbumList.get(i)命令访问ArrayList对象时,您将获得一个Album对象实例。所以你把它传递给Album变量。然后通过您之前设置的getter方法访问私有字段!

干杯!

答案 1 :(得分:0)

您可以通过覆盖Album类中的toString()方法或提供显示属性的公共方法来实现此目的。

 class Album {

    private String title;
    private double price;

    Album(String title, double price) {

        this.title = title;
        this.price = price;

    }

    public String getTitle() {
        return this.title;
    }

    public double getPrice() {
        return this.price;
    }

@Override
    public String toString(){
      return "title:"+title+",price:"+price;
    }
    }

将对象传递给 System.out.println(AlbumList.get(i))时,toString()方法将调用并打印相册标题和价格。

答案 2 :(得分:0)

  

如何从数组列表中打印相册标题

只需使用公共访问方法,即Album#getTitle()

public void displayAllAlbums() {
   for (Album album : AlbumList) {
        System.out.printf("Album title: %s%n",album.getTitle());
    }
}