Java编程错误

Java编程错误,java,Java,下面列出了我的两个类:TennisTeam类和使用它的TennisTeamApp类。有一个错误是: Player cannot be resolved to a type 有人能告诉我怎么修吗 // Kartik Patel // 16/08/2013 public class TennisTeam{ private String country; public Player player1; public Player player2; // Constructor

下面列出了我的两个类:TennisTeam类和使用它的TennisTeamApp类。有一个错误是:

Player cannot be resolved to a type
有人能告诉我怎么修吗

// Kartik Patel
// 16/08/2013

  public class TennisTeam{
  private String country;
  public Player player1;
  public Player player2;

//  Constructor
  public TennisTeam(String countryIn){
    country = countryIn;
    storePlayerData(country);
  }

//  Gets and stores user name 
  public void storePlayerData(String country){
   String prompt = "Enter Players Name ";
   System.out.println("Getting data from country " + country);
   System.out.println("Player 1, " + country +": ");
   System.out.println(readString(prompt));
   System.out.println("Player 2, " + country + ": ");
   System.out.println(readString(prompt));
  }

//  Read Strings
  public String readString (String prompt){
    java.util.Scanner keyboard = new java.util.Scanner(System.in);
    System.out.println(prompt);
    return keyboard.nextLine();
  }

//  Assessors returning values
  public String getCountry(){
   return country; 
  }
}



public class TennisTeamApp{
  public ststic void main(String [] args){
    TennisTeam [ ] teams = { new TennisTeam("NZ"), new TennisTeam("AUS")};

    for (TennisTeam team: teams){
      System.out.println(team.getCountry() + ": ");
      System.out.println(team.player1.getName() + ", ");
       System.out.println(team.player2.getName());
  }
 }
}
使用Import语句导入播放器。播放机未解析为类型的原因是,它在可用的名称空间中不为人所知,因此修复方法是导入它。

您尚未共享需要在那里的播放机类,以便编译您的TennisTeam类,因为它包含对播放机的引用。因此,在编译TennisTeam类之前,请确保您有一个已编译的Player类。如果它在那里,那么请确保已将其导入到TennisTeam类中

代码中的另一个问题是在初始化TennisTeam对象时没有初始化Player对象。因此,在访问第行中的player对象时,您将遇到空指针异常:

  System.out.println(team.player1.getName() + ", ");
卡尔蒂克

出于某种原因,我喜欢把初级家庭作业做得很好,如果你把作业当作自己的作业来做,那么你肯定会被抓住作弊,除非你的老师完全不称职,同时还给你一些有用的指导。我想我只是心里的另一个聪明人。。。但这是一个稍微有用的方法

苏欧,不用再麻烦了

玩家等级:是/曾经是米娅的那个

这是一个不可变的数据传输对象。Immutable是只读的术语。这意味着一旦对象被创建,一旦构造函数完成,它就不能被更改。一个数据传输对象正是它的名字所包含的:一个对象,它的存在仅仅是为了在其他类之间传输数据,这些类实际上对数据进行处理。它没有也不应该有任何智能。。。传输对象应该尽可能简单

以下是我的团队课程版本:

如您所见,这是一个传统的控制台应用程序。运行网球应用程序时,它使用屏幕和键盘创建、填充和显示两组球员。它包含了在这个相当简单的应用程序中实际执行任务的所有代码。然而,如果/当两支球队开始真正地打网球比赛时,我想我们会想要一个单独的班级,可能是几个班级来实现比赛本身。。。即使只是保持分数也可能需要一个记分员、一些分数、一个决斗助手和一大盒松树苹果,或者可能不需要

应用程序类没有做的是记住一些东西。。。嗯,不是直接的。它创建并使用能够记住内容的传输对象

还值得注意的是,您将在所有类型的应用程序中看到相同的三个基本步骤:

输入

处理,以及

输出

因此,让这些基本步骤在代码中显式地体现ie是一个好主意,特别是对于初学者来说,因为它有助于您专注于需要解决的问题以及如何。。。不要被你不应该在这个方法/类/模块/子系统/应用程序中试图解决的问题弄糊涂。。。就像试图找到一把大面包刀来打开盒子,让菠萝打裁判的头一样,在第三盘决胜局中,外邦人通过一个狡猾的电话交换意见,结束紧张的爱情。。。显然,你应该早点准备好弹药,或者干脆把整个弗里金盒子扔给他,希望他在比赛结束前视力有所改善

重点是设计每个类来完成一组定义良好的职责。每个类都应该包含具有简单易懂名称的方法,实际上每个方法都应该实现一个简单易懂的任务。这是优秀程序设计的精髓。让事情尽可能简单有助于减少错误,减少误解。它还有助于使您的软件具有灵活性和可重用性,这意味着它更易于维护。。。为了适应当前不可预见的未来需求。。。从长远来看,这一切都有助于降低软件拥有成本,这意味着您可以比竞争对手收取更少的费用,以完成更少的工作,从而获得更多的好处。。。这很好

最后是我的主要课程:

主类有一个职责:运行应用程序

显然,这样做会根据您输入的内容产生类似以下输出的结果:

另一个挑战是,试着去掉每个团队姓氏后面的逗号。提示:认为逗号在后面的每一项之前,而不是传统的更明显的想法,即除了最后一项之外,逗号在每一项之后。。。当然,诀窍在于,很难知道何时处理最终项,但您可以轻松确定是否/何时处理列表中的第一项与后续项相对应

我希望这能有所帮助。作为初学者,你做得很好。继续努力,你会成功的 我很快就会比我更明白。。。这并不难。有一次我被一条鱼打败了。。。长话短说-


干杯。基思。

玩家等级是否在同一个包中?如果没有,你导入了吗?它似乎在抱怨你没有定义什么是玩家。如果您确实有播放器源文件,请发布其内容。如果没有,那就是你的问题。你没有在任何地方实例化玩家。你所说的源是什么意思file@user2669883定义玩家身份的文件在哪里?使用导入关键字@用户2669883在中查找。他们不是因为你错了而投反对票,而是因为你给出了一个五个单词的答案,但代词不清楚。@Chris Bode:我明白了,我不认为它可能不清楚,但我现在明白了,谢谢你澄清这一点
package forums.kartikPatel.tennis;

public class Player {
    private final String name;
    Player(String name) {
        this.name = name;
    }
    public String getName() {
        return this.name;
    }
}
package forums.kartikPatel.tennis;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Team implements Iterable<Player> {

    private final String country;
    private final List<Player> players;

    public Team(String country) {
        this.country = country;
        this.players = new ArrayList<>();
    }

    public String getCountry() {
        return country;
    }

    public void addPlayer(Player player) {
        players.add(player);
    }

    public Player getPlayer(int index) {
        return players.get(index);
    }

    @Override
    public Iterator<Player> iterator() {
        return players.iterator();
    }
}
package forums.kartikPatel.tennis;

import java.io.PrintStream;
import java.util.Scanner;

public class Application
{
    private static final Scanner keyboard = new Scanner(System.in);
    private static final PrintStream screen = System.out;

    public void run() {
        // create two new teams: New Zealand (BOO!) and Australia (YEAH!)
        Team[] teams = {new Team("NZ"), new Team("AUS")};
        // populate both teams with players
        populate(teams);
        // display both teams, and all there players.
        display(teams);
    }

    // ------------------------------------------------------------------------
    // input

    // populate both teams with players
    private void populate(Team[] teams) {
        for ( Team team : teams ) {
            screen.println("Please enter the players for: " + team.getCountry());
            for (String name=readPlayersName(); name.length()>0; name=readPlayersName())
                team.addPlayer(new Player(name));
            screen.println();
        }
    }
    private String readPlayersName() {
        return readString("Players Name: ");
    }
    private String readString(String prompt) {
        screen.print(prompt);
        return keyboard.nextLine();
    }

    // ------------------------------------------------------------------------
    // output

    // display both teams, and all there players.
    private void display(Team[] teams) {
        screen.println("The line-ups are:");
        for ( Team team : teams ) {
            System.out.print(team.getCountry() + ": ");
            for ( Player player : team )
                screen.print(player.getName() + ", ");
            screen.println();
        }
    }
}
package forums;

import forums.kartikPatel.tennis.Application;

public class Main {

    public static void main(String[] args) {
        new Application().run();
    }
}
    Please enter the players for: NZ
    Players Name: Bob The Builder
    Players Name: Kania Fixit
    Players Name: Yazzie Can
    Players Name: 

    Please enter the players for: AUS
    Players Name: Mark Horran
    Players Name: Blocka Roach
    Players Name: The Reverand Fred Effing Nile
    Players Name: 

    The line-ups are:
    NZ: Bob The Builder, Kania Fixit, Yazzie Can, 
    AUS: Mark Horran, Blocka Roach, The Reverand Fred Effing Nile,