Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.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数组继承混乱_Java_Inheritance - Fatal编程技术网

Java数组继承混乱

Java数组继承混乱,java,inheritance,Java,Inheritance,这是我第一次来这里,我会努力把这篇文章做好。我正在为我的Java类做一个关于继承的练习。我有3个文件,DemoSugarSmash.java、SugarSmashPlayer.java和PremiumSugarSmashPlayer.java 该程序对SugarSmashPlayer部分正常工作,但是当尝试在PremiumSugarSmashPlayer.java文件中创建数组时,它的长度不会超过10,而应该是50 以下是练习说明: 一款名为SugarsMash的免费在线游戏的开发人员要求您开发

这是我第一次来这里,我会努力把这篇文章做好。我正在为我的Java类做一个关于继承的练习。我有3个文件,DemoSugarSmash.java、SugarSmashPlayer.java和PremiumSugarSmashPlayer.java

该程序对SugarSmashPlayer部分正常工作,但是当尝试在PremiumSugarSmashPlayer.java文件中创建数组时,它的长度不会超过10,而应该是50

以下是练习说明: 一款名为SugarsMash的免费在线游戏的开发人员要求您开发一个名为SugarSmashPlayer的类,该类保存单个玩家的数据

该类包含以下字段:

玩家的整数ID号 字符串屏幕名称 一个整数数组,存储10个游戏级别中每个级别的最高分数。 包括每个字段的get和set方法。得分的get和set方法都需要两个参数,一个表示获得的得分,另一个表示要检索或分配的游戏级别。如果用户试图从超出分数数组范围的级别分配或检索分数,则显示错误消息

此外,除非用户在之前的每个级别至少获得100分,否则不应设置除第一个级别之外的任何级别。如果用户试图为尚未可用的级别设置分数,则发出错误消息

编写从SugarSmashPlayer派生的类PremiumSugarSmashPlayer。当用户支付2.99美元以获得40个额外的游戏级别时,该类被实例化。在游戏的免费版本中,用户不能为某个级别设置分数,除非用户在之前的所有级别上都获得了至少100分

我还没有为付费访问部分编码行

// extend SugarSmashPlayer as PremiumSugarSmashPlayer here
public class PremiumSugarSmashPlayer extends SugarSmashPlayer
{
   // declare private variables here
   private int levels = 50;
   private int[] scores = new int[levels];

   public PremiumSugarSmashPlayer()
   {
      // add constructor code here
   }
   // override (public!) getLevels() method here
   @Override
   public int getLevels()
   {
      return levels;
   }
}

public class SugarSmashPlayer
{
   // add private varaibles here
   protected int IDNumber;
   protected String screenName;
   private int levels = 10;
   private int[] scores = new int[levels];

   public SugarSmashPlayer()
   {
      // add constructor code here
   }
   public void setIdNumber(int num)
   {
      // add method code here
      IDNumber = num;
   }
   public void setName(String player)
   {
      // add method code here
      screenName = player;
   }
   public void setScore(int score, int level)
   {
      // add method code here
      boolean goodScores = false;

      if (level == 0)
         // Set score to index 0
         scores[level] = score;
      else
      {
         // Check if  previous level score is greater than 100
         if (scores[level - 1] > 100)
               goodScores = true;
         // Set score to game level
         if (goodScores && level < scores.length)
            scores[level] = score;
         else
         {
            System.out.println("\nInvalid score");
         }
      }
   }
   public int getIdNumber()
   {
      // add method code here
      return IDNumber;
   }
   public String getName()
   {
      // add method code here
      return screenName;
   }
   public int getScore(int level)
   {
      // add method code here
      if (level >= scores.length)
      {
         System.out.println("Invalid game level");
         return -1;
      }
      else
         return scores[level];

   }
   public int getMinScore()
   {
      // add method code here
      return 100;
   }
   public int getLevels()
   {
      // add method code here
      return levels;
   }
}

import java.util.*;
public class DemoSugarSmash
{
   public static void main(String[] args)
   {
      SugarSmashPlayer ssPlayer = new SugarSmashPlayer();
      ssPlayer.setIdNumber(1111);
      ssPlayer.setName("Alex");
      System.out.println("\nAt start");
      display(ssPlayer);       
      ssPlayer.setScore(200, 0);
      System.out.println("\nAfter setting first score");
      display(ssPlayer);
      System.out.println("Trying to set fifth score too soon");
      ssPlayer.setScore(30, 4);
      System.out.println("\nAfter setting second score");
      ssPlayer.setScore(30, 1);
      display(ssPlayer);
      System.out.println("\nTrying to set third score when second is too low");
      ssPlayer.setScore(100, 2);
      display(ssPlayer);
      System.out.println("\nAfter setting second, third, fourth, and fifth scores");
      ssPlayer.setScore(100, 1);
      ssPlayer.setScore(300, 2);
      ssPlayer.setScore(400, 3);
      ssPlayer.setScore(10, 4);
      display(ssPlayer);
      System.out.println("\nTrying to set eleventh score");
      ssPlayer.setScore(100, 10);

      PremiumSugarSmashPlayer pssPlayer = new PremiumSugarSmashPlayer();
      pssPlayer.setIdNumber(2222);
      pssPlayer.setName("Cory");
      System.out.println("\nAt start");
      display(pssPlayer);       
      pssPlayer.setScore(200, 0);
      System.out.println("\nAfter setting first score");
      display(pssPlayer);
      System.out.println("Trying to set fifth score too soon");
      pssPlayer.setScore(30, 4);
      System.out.println("\nAfter setting second score");
      pssPlayer.setScore(30, 1);
      display(pssPlayer);
      System.out.println("\nTrying to set third score when second is too low");
      pssPlayer.setScore(100, 2);
      display(pssPlayer);
      System.out.println("\nAfter setting second through tenth scores");
      for(int x = 1; x < 10; ++x)
         pssPlayer.setScore(130, x);
      display(pssPlayer);
      System.out.println("\nTrying to set eleventh score");
      pssPlayer.setScore(100, 10);
       display(pssPlayer);
      System.out.println("\nTrying to set 51st score");
      pssPlayer.setScore(100, 50);
      display(pssPlayer);
   }
   public static void display(SugarSmashPlayer p)
   {
      System.out.println("   ID #" + p.getIdNumber() + "  Name: " +
         p.getName());
      for(int x = 0; x < p.getLevels(); ++x)
         System.out.print("   " + p.getScore(x));
      System.out.println();
   }
}
//在此将SugarSmashPlayer扩展为PremiumSugarSmashPlayer
公共类PremiumSugarSmashPlayer扩展SugarSmashPlayer
{
//在这里声明私有变量
私人智力水平=50;
私人智力[]分数=新智力[水平];
公共PremiumSugarSmashPlayer()
{
//在此处添加构造函数代码
}
//在此处重写(public!)getLevels()方法
@凌驾
公共int getLevels()
{
回报水平;
}
}
公开课的糖衣播放机
{
//在此处添加私人变量
受保护的国际号码;
受保护的字符串屏幕名称;
私人智力水平=10;
私人智力[]分数=新智力[水平];
公共播放器()
{
//在此处添加构造函数代码
}
公共void setIdNumber(int num)
{
//在此处添加方法代码
IDNumber=num;
}
公共无效集合名(字符串播放器)
{
//在此处添加方法代码
屏幕名=播放器;
}
公共核心(整数分数,整数级别)
{
//在此处添加方法代码
布尔分数=假;
如果(级别==0)
//将分数设置为索引0
分数[级别]=分数;
其他的
{
//检查上一级分数是否大于100
如果(分数[级别1]>100)
好分数=真;
//将分数设置为游戏级别
if(良好分数和等级<分数.长度)
分数[级别]=分数;
其他的
{
System.out.println(“\n无效分数”);
}
}
}
public int getIdNumber()
{
//在此处添加方法代码
返回IDNumber;
}
公共字符串getName()
{
//在此处添加方法代码
返回屏幕名称;
}
公共整数getScore(整数级别)
{
//在此处添加方法代码
如果(级别>=分数.长度)
{
System.out.println(“无效游戏级别”);
返回-1;
}
其他的
返回分数[级别];
}
public int getMinScore()
{
//在此处添加方法代码
返回100;
}
公共int getLevels()
{
//在此处添加方法代码
回报水平;
}
}
导入java.util.*;
公开课演示
{
公共静态void main(字符串[]args)
{
SugarSmashPlayer ssPlayer=新的SugarSmashPlayer();
ssPlayer.setIdNumber(1111);
ssPlayer.setName(“Alex”);
System.out.println(“\n启动”);
显示器(ssPlayer);
ssPlayer.setScore(200,0);
System.out.println(“\n设置第一个分数后”);
显示器(ssPlayer);
System.out.println(“试图过早地设置第五个分数”);
ssPlayer.setScore(30,4);
System.out.println(“\n设置第二个分数后”);
ssPlayer.setScore(30,1);
显示器(ssPlayer);
System.out.println(“\n当第二个分数太低时设置第三个分数”);
ssPlayer.setScore(100,2);
显示器(ssPlayer);
System.out.println(“\n设置第二、第三、第四和第五个分数后”);
ssPlayer.setScore(100,1);
ssPlayer.setScore(300,2);
ssPlayer.setScore(400,3);
ssPlayer.setScore(10,4);
显示器(ssPlayer);
System.out.println(“\n尝试设置第十一个分数”);
ssPlayer.setScore(100,10);
PremiumSugarSmashPlayer pssPlayer=新的PremiumSugarSmashPlayer();
pssPlayer.setIdNumber(2222);
pssPlayer.setName(“Cory”);
System.out.println(“\n启动”);
显示器(PSS播放器);
pssPlayer.setScore(200,0);
System.out.println(“\n设置第一个分数后”);
显示器(PSS播放器);
System.out.println(“试图过早地设置第五个分数”);
pssPlayer.setScore(30,4);
System.out.println(“\n设置第二个分数后”);
pssPlayer.setScore(30,1);
显示器(PSS播放器);
System.out.println(“\n当第二个分数太低时设置第三个分数”);
pssPlayer.setScore(100,2);
显示器(PSS播放器);
System.out.println(“\n设置第二到第十个分数后”);
对于(int x=1;x<10;++x)
pssPlayer.setScore(130,x);
显示器(PSS播放器);
System.out.println(“\n尝试设置第十一个分数”);
pssPlayer.setScore(100,10);
显示(ps)
public void display()
   {
      System.out.println("   ID #" + IDNumber + "  Name: " +
         screenName);
      for(int x = 0; x < levels; ++x)
         System.out.print("   " + scores[x]);
      System.out.println();
   }
public void display()
   {     
      super.display();

   }