我在创建一个Class Album后声明了一个对象数组。最后一个对象的变量会覆盖其他对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我在创建一个Class Album后声明了一个对象数组。最后一个对象的变量会覆盖其他对象相关的知识,希望对你有一定的参考价值。
请实施以下四种排序算法。
插入排序(就地)
冒泡排序
选择排序
快速排序
应对这些算法中的每行代码进行注释,以解释其在排序实现中的作用。
这些方法应按降序对一组整数进行排序。如果您的排序方法传递一个包含数字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);
}
}
答案
public class Album {
private static String artist;
private static String albumTitle;
不要将变量定义为static
。
这意味着Album类的所有实例都将引用单个变量。
摆脱静态修饰符。
以上是关于我在创建一个Class Album后声明了一个对象数组。最后一个对象的变量会覆盖其他对象的主要内容,如果未能解决你的问题,请参考以下文章