Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的数组返回0作为比特率,而在其他地方返回ok?_Java_Arrays_Object_Output - Fatal编程技术网

Java 为什么我的数组返回0作为比特率,而在其他地方返回ok?

Java 为什么我的数组返回0作为比特率,而在其他地方返回ok?,java,arrays,object,output,Java,Arrays,Object,Output,我正在尝试显示musicLibrary阵列中的10个对象。每个对象都有自己的艺术家名称、歌曲标题、比特率和歌曲的总时间 除了“比特率=0k”部分,我的跑步在任何地方都可以。我的运行为数组显示下的10个对象中的每一个提供比特率=0k。我希望每个对象的比特率为{250150350450550200100400300500}。 这些值都在我在iTunes类中设置的范围内。在任何情况下,如果这些值不在设置的范围内,我都会收到一个“Bad\uuinput”的输出。然而,我得到的是“0” 我的代码中有两个独

我正在尝试显示musicLibrary阵列中的10个对象。每个对象都有自己的艺术家名称、歌曲标题、比特率和歌曲的总时间

除了“比特率=0k”部分,我的跑步在任何地方都可以。我的运行为数组显示下的10个对象中的每一个提供比特率=0k。我希望每个对象的比特率为{250150350450550200100400300500}。 这些值都在我在iTunes类中设置的范围内。在任何情况下,如果这些值不在设置的范围内,我都会收到一个“Bad\uuinput”的输出。然而,我得到的是“0”

我的代码中有两个独立的部分。 第一部分由四个不在数组中的对象组成。对于这四个,我显示它们,对它们进行变异,显示它们,设置为默认值,然后显示。我在这里跑步很好。(我不想删除这一部分,以免混淆)

第二部分是我的十个对象数组。对于这一部分,我只需要显示数组中十个对象的数据。我的问题是,当我显示我的数组时,我的比特率数据显示为0。 对于这两个部分,我正在检查值是否在我设置的范围内

为了清洁起见,我可以删除我的else(在代码中标记)吗

我很困惑,因为我为比特率编写的代码与我为其他实例成员编写的代码(艺术家名称、歌曲标题、总时间)基本相同,但变量名称不同。我似乎不明白是什么导致Eclipse显示“0”而不是我的值。 我是一名Java初学者,请给出一个简单的解释。 谢谢

代码:

公共级山麓{
公共静态void main(字符串[]args){
//默认构造函数
iTunes Coldplay=新iTunes();
iTunes NorahJones=新iTunes();
iTunes银行=新iTunes();
//带参数的构造函数
iTunes JamesBay=新iTunes(“阻挡河流”,“詹姆斯湾”,300240006);
//立即显示对象
System.out.print(“初始显示:“+”\n“+”\n”);
Coldplay.display();
显示();
Banks.display();
JamesBay.display();
系统输出打印(“\n”);
//改变许多对象的字段
Coldplay.setArtistName(“Coldplay”);
酷玩。设置千比特(275);
Coldplay.setSongTitle(“黄色”);
Coldplay.setms(260000);
NorahJones.setArtistName(“Norah Jones”);
NorahJones.设置千位(75);
NorahJones.setSongTitle(“跟我走吧”);
诺拉·琼斯(190000);
银行。卖方名称(“银行”);
设置千位(175);
银行。setSongTitle(“Beggin for Thread”);
银行(250000);
詹姆斯贝。集艺人名称(“詹姆斯贝”);
詹姆斯贝。设置千比特(375);
杰米斯贝。setSongTitle(“放手”);
詹姆斯贝(251000);
//访问对象字段
Coldplay.getArtistName();
Coldplay.getSongTitle();
NorahJones.getArtistName();
NorahJones.getSongTitle();
Banks.getArtistName();
Banks.getSongTitle();
JamesBay.getArtistName();
JamesBay.getSongTitle();
//检查以确保mutator调用有效
System.out.print(“突变显示:”+'\n'+'\n');
如果(Coldplay.setSongTitle(“Viva La Vida”){
Coldplay.display();
}
else{//我可以删除这个吗?
System.out.println(“艺术家姓名输入错误”);
}
如果(NorahJones.setSongTitle(“跟我走”)){
显示();
}
else{//我可以删除这个吗?
System.out.println(“艺术家姓名输入错误”);
}
if(Banks.setSongTitle(“Beggin For Thread”)){
Banks.display();
} 
else{//我可以删除这个吗?
System.out.println(“艺术家姓名输入错误”);
}
如果(JamesBay.setSongTitle(“放手”)){
JamesBay.display();
系统输出打印(“\n”);
}
else{//我可以删除这个吗?
System.out.println(“艺术家姓名输入错误”);
}
//将对象重置为默认值
Coldplay.setDefaults();
NorahJones.setDefaults();
Banks.setDefaults();
setDefaults();
//上次显示对象
System.out.print(“默认显示:”+'\n'+'\n');
Coldplay.display();
显示();
Banks.display();
JamesBay.display();
System.out.println(“\n”);
iTunes[]musicLibrary=新iTunes[10];
String[]originalArtist=新字符串[]{“剧本”、“泰根和萨拉”、“巴士底狱”、“披头士”、“霍泽尔”、“山姆·史密斯”、“小鸟”、“乔治·埃兹拉”、“哈伊姆”、“万斯·乔伊”};
String[]nameArtist=新字符串[]{“剧本”、“泰根和萨拉”、“巴士底狱”、“披头士”、“霍泽尔”、“山姆·史密斯”、“小鸟”、“乔治·埃兹拉”、“哈伊姆”、“万斯·乔伊”};
String[]originalSong=新字符串[]{“超级英雄”,“更亲密”,“缺陷”,“顺其自然”,“带我去教堂”,“放下我”,“T恤”,“布达佩斯”,“坠落”,“混乱是我的”};
String[]titleSong=新的String[]{“超级英雄”,“更亲密”,“缺陷”,“顺其自然”,“带我去教堂”,“放下我”,“T恤”,“布达佩斯”,“坠落”,“混乱是我的”};
int[]originalBit=new int[]{250150350450550200100400300500};//这应该显示为我的比特率
int[]rateBit=newint[]{250150350450550200100400300500};//这应该显示为我的比特率
int[]originalTime=新int[]{270000、200000、210000、240000、242000、246000、145000、202000、250000、208000};
int[]timeTotal=新int[]{270000、200000、210000、240000、242000、246000、145000、202000、250000、208000};
System.out.print(“数组显示:”+'\n'+'\n');
对于(int i=0;i<10;i++){
musicLibrary[i]=新iTunes();
if(musicLibrary[i].setArtistName(originalArtist[i])){
音乐图书馆[i].setArtistName(nameArtist[i]);
}
否则{
System.out.println(“艺术家姓名输入错误”);
}
if(musicLibrary[i].setSongTitle(原创歌曲[i])){
音乐图书馆[i].歌名(titleSong[i]);
}
public class Foothill {

public static void main(String [] args) {

   //default constructor 
   iTunes Coldplay = new iTunes();
   iTunes NorahJones = new iTunes();
   iTunes Banks = new iTunes();

   //constructor with parameters
   iTunes JamesBay = new iTunes("Hold Back The River", "James Bay", 300, 240006);

   //display objects immediately
   System.out.print("Initial Display: " + '\n' + '\n' );
   Coldplay.display();
   NorahJones.display();
   Banks.display();
   JamesBay.display();
   System.out.print("\n");

   //mutate many of the objects' fields
   Coldplay.setArtistName("Coldplay");
   Coldplay.setKiloBits(275);
   Coldplay.setSongTitle("Yellow");
   Coldplay.setMilliSeconds(260000);

   NorahJones.setArtistName("Norah Jones");
   NorahJones.setKiloBits(75);
   NorahJones.setSongTitle("Come Away With Me");
   NorahJones.setMilliSeconds(190000);

   Banks.setArtistName("Banks");
   Banks.setKiloBits(175);
   Banks.setSongTitle("Beggin for Thread");
   Banks.setMilliSeconds(250000);

   JamesBay.setArtistName("James Bay");
   JamesBay.setKiloBits(375);
   JamesBay.setSongTitle("Let it Go");
   JamesBay.setMilliSeconds(251000);

   //access object fields
   Coldplay.getArtistName();
   Coldplay.getSongTitle();

   NorahJones.getArtistName();
   NorahJones.getSongTitle();

   Banks.getArtistName();
   Banks.getSongTitle();

   JamesBay.getArtistName();
   JamesBay.getSongTitle();

   //check to make sure mutator call is valid
   System.out.print("Mutated Display: " + '\n' + '\n');
   if (Coldplay.setSongTitle("Viva La Vida")){ 
      Coldplay.display(); 
   }
   else { //can I delete this else?
      System.out.println("Bad Artist Name input");
   }
   if (NorahJones.setSongTitle("Come Away With Me")){
      NorahJones.display(); 
   }
   else { //can I delete this else?
      System.out.println("Bad Artist Name input");
   }
   if (Banks.setSongTitle("Beggin For Thread")){
      Banks.display();  
   } 
   else { //can I delete this else?
      System.out.println("Bad Artist Name input");
   }
   if (JamesBay.setSongTitle("Let it Go")){
      JamesBay.display(); 
      System.out.print("\n");
   }
   else { //can I delete this else?
      System.out.println("Bad Artist Name input");
   }

   //reset objects to default values
   Coldplay.setDefaults();
   NorahJones.setDefaults();
   Banks.setDefaults();
   JamesBay.setDefaults();

   //display objects for the last time
   System.out.print("Default Display: " + '\n' + '\n');
   Coldplay.display();
   NorahJones.display();
   Banks.display();
   JamesBay.display();
   System.out.println("\n");

   iTunes[] musicLibrary = new iTunes[10];
   String[] originalArtist = new String [] {"The Script", "Tegan and Sara", "Bastille", "The Beatles", "Hozier", "Sam Smith", "Birdy", "George Ezra", "Haim", "Vance Joy"};
   String[] nameArtist = new String[] {"The Script", "Tegan and Sara", "Bastille", "The Beatles", "Hozier", "Sam Smith", "Birdy", "George Ezra", "Haim", "Vance Joy"};
   String[] originalSong = new String [] {"Superheroes", "Closer", "Flaws", "Let it Be", "Take Me to Church", "Lay Me Down", "Tee Shirt", "Budapest", "Falling", "Mess Is Mine"};
   String[] titleSong = new String[] {"Superheroes", "Closer", "Flaws", "Let it Be", "Take Me to Church", "Lay Me Down", "Tee Shirt", "Budapest", "Falling", "Mess Is Mine"};
   int[] originalBit = new int [] {250, 150, 350, 450, 550, 200, 100, 400, 300, 500}; //this is should be displayed as my BitRate
   int[] rateBit = new int[] {250, 150, 350, 450, 550, 200, 100, 400, 300, 500}; //this is should be displayed as my BitRate
   int[] originalTime = new int[] {270000, 200000, 210000, 240000, 242000, 246000, 145000, 202000, 250000, 208000};
   int[] timeTotal = new int[] {270000, 200000, 210000, 240000, 242000, 246000, 145000, 202000, 250000, 208000};

   System.out.print("Array Display: " + '\n' + '\n');
   for (int i = 0; i < 10; i++) {
      musicLibrary[i] = new iTunes();

      if (musicLibrary[i].setArtistName(originalArtist[i])){
         musicLibrary[i].setArtistName(nameArtist[i]);
      }
      else {
         System.out.println("Bad Artist Name input");
      }
      if (musicLibrary[i].setSongTitle(originalSong[i])){
         musicLibrary[i].setSongTitle(titleSong[i]);
      }
      else {
         System.out.println("Bad Song Title input");
      }
      if (musicLibrary[i].setKiloBits(originalBit[i])){
         musicLibrary[i].setKiloBits(rateBit[i]);
      }
      else {
         System.out.println("Bad Bits Rate input");
      }
      if (musicLibrary[i].setMilliSeconds(originalTime[i])){
         musicLibrary[i].setMilliSeconds(timeTotal[i]);
      }
      else {
         System.out.println("Bad Song Length input");
      }

      musicLibrary[i].display();
   }
 }
}

class iTunes{
   //private class instance members
   private String name;
   private String artist;
   private int bitRate;
   private double totalTime;

   //public class static final constants
   public static final int MIN_BITRATE = 64;
   public static final int MAX_BITRATE = 705;
   public static final int MIN_STR_LENGTH = 1;
   public static final int MAX_STR_LENGTH = 128;
   public static final int MIN_PLAY_TIME = 5000;
   public static final int MAX_PLAY_TIME = 1000*60*60;
   public static final int DEFAULT_BITRATE = 64;
   public static final int DEFAULT_PLAY_TIME = 5000;
   public static final String DEFAULT_STRING = "(undefined)"; 

   //default constructor
   public iTunes (){
      name = "";
      artist = "";
      bitRate = 0;
      totalTime = 0;
   }
   //constructor with parameters
   iTunes (String songTitle, String artistName, int kiloBits, int milliSeconds) {
      name = songTitle;
      artist = artistName;
      bitRate = kiloBits;
      totalTime = milliSeconds;
   }
   //get/accessor and set/mutators for instance members
   public String getSongTitle() {
      return name;
   }
   public boolean setSongTitle(String songTitle) {
      if (songTitle.length() > MIN_STR_LENGTH && songTitle.length() < MAX_STR_LENGTH){
         name = songTitle;
         return true;
      }
      return false;
   }
   public String getArtistName() {
      return artist;
   }
   public boolean setArtistName(String artistName) {
      if (artistName.length() > MIN_STR_LENGTH && artistName.length() < MAX_STR_LENGTH){
         artist = artistName;
         return true;
      }
      return false;
   }
   public int getKiloBits() {
      return bitRate;
   }
   public boolean setKiloBits(int kiloBits) {
      if (kiloBits > MIN_BITRATE && kiloBits < MAX_BITRATE){
         bitRate = (kiloBits/1000);
         return true;
      }
      return false;
   }
   public double getMilliSeconds() {
      return totalTime;
   }
   public boolean setMilliSeconds(int milliSeconds) {
      if (milliSeconds > MIN_PLAY_TIME && milliSeconds < MAX_PLAY_TIME){
         totalTime = milliSeconds;
         return true;
      }
      return false;
   }
   public String timeInMinutesAndSeconds(){
      if (totalTime == 0.0){
         return (totalTime + " minutes and " + totalTime + " seconds");
      }
      else {
         int timeMinutes = (int) totalTime /60000;
         int timeRemainder = (int) totalTime - timeMinutes * 60000;
         int timeSeconds = timeRemainder/600;
         return (timeMinutes + " minutes and " + timeSeconds + " seconds");
      }
   }
   public String toString(){
      return ("Title: " + name + " / Artist: " + artist + " / Playing Time: " + timeInMinutesAndSeconds() + " / BitRate: " + bitRate + "k");  
   }
   public void setDefaults(){
      name = DEFAULT_STRING;
      artist = DEFAULT_STRING;
      bitRate = DEFAULT_BITRATE;
      totalTime = DEFAULT_PLAY_TIME;
   }
   public void display(){
      System.out.println(toString());
   }
}
public boolean setKiloBits(int kiloBits) {
      if (kiloBits > MIN_BITRATE && kiloBits < MAX_BITRATE){
         bitRate = (kiloBits/1000);
         return true;
      }
      return false;
}
public boolean setKiloBits(int kiloBits) {
      if (kiloBits > MIN_BITRATE && kiloBits < MAX_BITRATE){
         bitRate = (kiloBits/1000.0);
         return true;
      }
      return false;
}