无法在java中打印类对象值
记分板类中的显示函数无法打印对象游戏条目的值 值由add函数获取,并开始分配给对象数组 当值为0时,将显示错误 线程“main”java.lang.NullPointerException中出现异常 显示(Scoreboard.java:73)无法在java中打印类对象值,java,object,Java,Object,记分板类中的显示函数无法打印对象游戏条目的值 值由add函数获取,并开始分配给对象数组 当值为0时,将显示错误 线程“main”java.lang.NullPointerException中出现异常 显示(Scoreboard.java:73) 73线-记分板类中的显示块 无法打印显示块中的值 import java.util.*; class Game_entry { String name; int score=0; Game_entry(String n,int s
73线-记分板类中的显示块 无法打印显示块中的值
import java.util.*;
class Game_entry
{
String name;
int score=0;
Game_entry(String n,int s){
name=n;
score=s;
System.out.println(name);
System.out.println(s);
}
String getname()
{
return name;
}
int getscore()
{
return score;
}
void display()
{
System.out.println("name:"+name+" score:"+score);
}
}
公开课记分板{
静态int num_条目;
游戏进入[]板;
记分牌(国际容量)
{
棋盘=新游戏输入[容量];
}
无效添加(游戏条目e)
{
int newscore=e.getscore();
if(num_entriesboard[num_entries-1].getscore())
{
如果(num_entries0&&board[j-1].getscore()这是因为您在询问用户想要做什么之前创建了一个Scoreboard
的新实例。您的用户添加了一个新分数,然后您再次丢弃它
如果num_entries
字段不是static
static
意味着Scoreboard
的所有实例之间只有一个共享的num_entries
字段,这就不会有太大问题。因此,每次创建新数组时,您都会记住上一个数组中的元素数请在Scoreboard.java
文件中标识第73行。Scoreboard类其他部分中的显示块可能重复
public class Scoreboard {
static int num_entries;
Game_entry[] board;
Scoreboard(int capacity)
{
board=new Game_entry[capacity];
}
void add(Game_entry e)
{
int newscore=e.getscore();
if(num_entries<board.length || newscore>board[num_entries-1].getscore())
{
if(num_entries<board.length){
++num_entries;
System.out.println("hello");
System.out.println(num_entries);
}
int j=num_entries-1;
while(j>0 && board[j-1].getscore()<newscore)
{
System.out.println("hello");
board[j]=board[j-1];
j--;
}
board[j]=e;
System.out.println(board[0].getname());
System.out.println(board[0].getscore());
}
System.out.println(num_entries);
}
void display()
{
System.out.println(num_entries);
System.out.println("Total no. of enteries"+num_entries);
if(num_entries==0)
{
System.out.println("no entries");
}
else
{
for(int i=0;i<num_entries;i++)
System.out.println(board[i].getname());
System.out.println(board[i].getscore());
}
}
public static void main(String[] args) {
// TODO code application logic here
int c;
boolean a=true;
Scanner sc=new Scanner(System.in);
while(a==true)
{
System.out.println("\n\n\n MENU ");
System.out.println("1.Insertion");
System.out.println("2.Deletion");
System.out.println("3.Display");
System.out.println("4.Exit");
System.out.println("Enter your choice");
c=sc.nextInt();
Scoreboard sco=new Scoreboard(100);
switch(c)
{
case 1:
String m;
int n;
System.out.println("Enter name");
m=sc.next();
System.out.println("enter score");
n=sc.nextInt();
Game_entry ge=new Game_entry(m,n);
sco.add(ge);
break;
case 2:
// int x;
// System.out.println("enter the index from where element must b deleted");
// x=sc.nextInt();
// sco.remove(x);
// break;
case 3:
sco.display();
break;
case 4:
a=false;
break;
default:
System.out.println("enter correct choice");
}
}
}
}