Java自行车和自行车测试

时间:2014-09-12 05:57:04

标签: java

编写代码时遇到问题。这是一个代码,我必须创建一个对象类并使用另一个类对象运行它。 该计划被称为自行车和自行车测试。 我得到了自行车计划(已经写好了),我只需要写自行车试用自行车。 现在,问题是,我创建了2个对象,名为NiceBicycle和CoolBicycle。我需要将我的NiceBicycle名称更改为" Kenny McCormick,但我无法做到。我一直在说错误 "错误:变量NiceBicycle可能尚未初始化"对于我写的这一行命令。

//使用setOwnerName将所有者的名称更改为Kenny McCormick     NiceBicycle.setOwnerName("Kenny McCormick");

我该怎么办?

无论如何,这是我根据讲师命令编写的自行车代码和bicycletest。 谢谢你的回复

bicycle.java

public class Bicycle
{

// Instance field
private String ownerName;
private int licenseNumber;

// Constructor
public Bicycle( String name, int license )
{
     ownerName = name;
     licenseNumber = license;
}

// Returns the name of this bicycle's owner
public String getOwnerName()
{
     return ownerName;
}

// Assigns the name of this bicycle's owner
public void setOwnerName( String name )
{
     ownerName = name;
}

// Returns the license number of this bicycle
public int getLicenseNumber()
{
     return licenseNumber;
}

// Assigns the license number of this bicycle
public void setLicenseNumber( int license ) 
{
     licenseNumber = license;
}

}

这是我写的bicycletest.java。

  public class BicycleTest 
   {

    public static void main( String[] args )
    {

    // Create 1 Bicycle reference variable. For example: myBike
    Bicycle NiceBicycle;

    // Create 1 String reference variable for the owner's name
    String name;

    // Create 1 integer variable for license number
    int licenceNumber;

    // Assign your full name and a license number to the String and
    // integer variables
    name = "Boo Yeah";
    int licenseNumber = 9972;

    // Create a Bicycle object with the Bicycle class constructor
    // Use the variables you created as arguments to the constructor
    Bicycle CoolBicycle = new Bicycle( "Boo Yeah", 9972 );

    // Output the owner's name and license number in printf statements
    // using the object reference and the get methods.
    // For example: bike.getOwnerName()
    System.out.printf ("The CoolBicycle owner's name is %s\nThe license number is %d\n", CoolBicycle.getOwnerName(), CoolBicycle.getLicenseNumber());

    // Change the owner's name to Kenny McCormick using setOwnerName
    NiceBicycle.setOwnerName("Kenny McCormick");

    // Output the owner's name and license number in printf statements
      // using the Bicycle object reference variable and the get methods.
      System.out.printf ("The NiceBicycle owner's name is %s\n", NiceBicycle.getOwnerName());
 }

}

7 个答案:

答案 0 :(得分:1)

您需要实例化Bicycle并在测试中通过更改:

将其分配给NiceBicycle
Bicycle NiceBicycle;

为:

Bicycle NiceBicycle = new Bicycle("", 0);

然后你可以在它上面设置setOwnerName():

NiceBicycle.setOwnerName("Kenny McCormick");

另请注意,Java约定建议变量名称以小写字母开头,因此如果您想遵循Java约定, NiceBicycle 应该是 niceBicycle

答案 1 :(得分:0)

NiceBicycle尚未初始化(尚未创建自行车对象)。

尝试替换

Bicycle NiceBicycle;

Bicycle NiceBicycle = new Bicycle("",0);

答案 2 :(得分:0)

编译器很友好。在尝试使用之前,您没有设置NiceBicycle。该变量未设置。

另请注意,Java约定始终命名以小写字母开头的变量,以及以大写字母开头的类。这很重要,因为.严重超载,也就是说,它会有很多不同的东西。

答案 3 :(得分:0)

您需要初始化New Bicycle对象。

Bicycle NiceBicycle = new Bicycle( "Some value", 9972 );

答案 4 :(得分:0)

尝试这样的事情

Bicycle NiceBicycle = new Bicycle("User2", 0);

然后尝试更改所有者的名称

答案 5 :(得分:0)

您只是对Bicycle对象的引用

Bicycle NiceBicycle;

因此实际的Bicycle实例尚未在内存中创建。 在设置名称之前,必须先创建实际实例。然后尝试设置名称。

Bicycle NiceBicycle = new Bicycle(null, 0);
NiceBicycle.setOwnerName("Kenny McCormick");

答案 6 :(得分:0)

Andy你已经为Bicycle类创建了构造函数,它将设置Owner和licenseNumber的名称。您曾经使用new
关键字创建对象。当它执行某些操作时,它会1根据您给出的值2调用默认构造函数或重载构造函数,它会分配内存。这就是为什么当你创建一个类的对象时,你使用了new关键字
,现在你得到错误,因为你没有正确初始化对象来初始化它你会这样做
Bicycle NiceBicycle = new Bicycle("",0);
现在要设置值,您将调用SetterGetter方法,例如NiceBicycle.setOwnerName("SetName") now现在为您命名将调用为string OwnerName = NiceBicycle.getOwnerName()