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