我在创建一个Class Album后声明了一个对象数组。最后一个对象的变量会覆盖其他对象

问题描述 投票:-2回答:1

请实施以下四种排序算法。

插入排序(就地)

冒泡排序

选择排序

快速排序

应对这些算法中的每行代码进行注释,以解释其在排序实现中的作用。

这些方法应按降序对一组整数进行排序。如果您的排序方法传递一个包含数字3,5和1的数组。您的排序方法应该返回5,3,1。

我也希望你的排序方法实现对专辑对象进行排序。每个专辑对象将包括一个艺术家和一个专辑标题,它们都是字符串对象。每种排序方法都应按降序排列一组专辑标题(按专辑标题)。

public class Sorting1
{
  static Album alb;

  public static void main (String[] argv)
  {

    Album albs1 = new Album("Kanye West","My Beautiful Dark Twisted Fantasy");
    Album albs2 = new Album("Kanye West","Yeezus");
    Album albs3 = new Album("Kanye West","The Life of Pablo");
    Album albs4 = new Album("Kanye West","Late Registration");
    Album albs5 = new Album("Kanye West","Graduation");

    //create String array of album albTitles
    String[] albTitles = new String[5];
    albTitles[0] = albs1.getAlbumTitle();
    albTitles[1] = albs2.getAlbumTitle();
    albTitles[2] = albs3.getAlbumTitle();
    albTitles[3] = albs4.getAlbumTitle();
    albTitles[4] = albs5.getAlbumTitle();

    //selectionSort
    System.out.println(Arrays.toString(albTitles));
}
}

package Assignment1;
import java.util.*;
import java.io.*;

public class Album {

  private static String artist;
  private static String albumTitle;

  public void setArtist(String newArtist) {artist = newArtist;}   
  public String getArtist(){return artist; }

  public void setAlbumTitle(String newAlbum) {albumTitle = newAlbum;}    
  public String getAlbumTitle (){ return albumTitle; }

  public Album (String newArtist){
      artist = newArtist;  
  }

  public Album (String newArtist, String newAlbum){
    artist = newArtist;
    albumTitle = newAlbum;
  }

  public String toString(){
    return "\nArtist: " + artist + " Album Name: " + albumTitle;
  }

  public void print(){
    System.out.println("Artist: " + artist + " Album Name: " + albumTitle);
  }

}
java arrays object
1个回答
1
投票
public class Album {

  private static String artist;
  private static String albumTitle;

不要将变量定义为static

这意味着Album类的所有实例都将引用单个变量。

摆脱静态修饰符。

© www.soinside.com 2019 - 2024. All rights reserved.