编写代码时遇到问题。这是一个代码,我必须创建一个对象类并使用另一个类对象运行它。 该计划被称为自行车和自行车测试。 我得到了自行车计划(已经写好了),我只需要写自行车试用自行车。 现在,问题是,我创建了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());
}
}
答案 0 :(得分:1)
您需要实例化Bicycle并在测试中通过更改:
将其分配给NiceBicycleBicycle 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);
现在要设置值,您将调用Setter
和Getter
方法,例如NiceBicycle.setOwnerName("SetName")
now现在为您命名将调用为string OwnerName = NiceBicycle.getOwnerName()