内部 Class 和构造函数
Inner Class and Constructors
我想创建一个 class ,它将具有相同的内部,更具体地说是这样的:
class PassengerComponent extends PlaneComponent
{
PassengerComponent InnerPC ;
int inner ; // checks if PassengerComponent has an inner class
passengerComponent 继承自:
class PlaneComponent
{
String Description ;
}
问题是里面的class应该是随机填充的,也就是说
有时乘客组件会有内部组件,有时则没有!
我尝试这样做的方式如下:
int random = (int )(Math.random() * 1 + 0 );
if( random == 0)
{
PassengerComponent PC1 = new PassengerComponent("Passenger Component #1" , 0);
}
else
{
PassengerComponent PC1 = new PassengerComponent("Passenger Component #1" , 1);
}
PC1.ready_check(Sc, Cg);
而乘客构造函数如下:
public PassengerComponent( String D , int i)
{
Description = D ;
System.out.println( " PassengerComponent: " + Description + " Has Been Created ");
switch (i) {
case 0:
InnerPC = new PassengerComponent( " Inner Passenger Component #1 " , 2 );
inner = 1 ;
break;
case 1:
inner = 0 ;
break ;
case 2:
break;
default:
break;
}
}
}
调用构造函数并且输出消息似乎没问题,但是当调用 PC1.ready_check 时,编译器找不到我创建的 PC1! (ready_check 任何想知道的人都没有问题)
抱歉问题很长,有什么想法吗?
与内部类或PassengerComponent
无关,只与变量作用域有关
由于 PC1
在 内部 if/else
块中声明,因此它仅在该块中已知。
如果要在 if/else
块之后使用 PC1
,请在上一级声明它:
int random = (int )(Math.random() * 1 + 0 );
PassengerComponent PC1;
if( random == 0)
{
PC1 = new PassengerComponent("Passenger Component #1" , 0);
}
else
{
PC1 = new PassengerComponent("Passenger Component #1" , 1);
}
PC1.ready_check(Sc, Cg);
我想创建一个 class ,它将具有相同的内部,更具体地说是这样的:
class PassengerComponent extends PlaneComponent
{
PassengerComponent InnerPC ;
int inner ; // checks if PassengerComponent has an inner class
passengerComponent 继承自:
class PlaneComponent
{
String Description ;
}
问题是里面的class应该是随机填充的,也就是说 有时乘客组件会有内部组件,有时则没有! 我尝试这样做的方式如下:
int random = (int )(Math.random() * 1 + 0 );
if( random == 0)
{
PassengerComponent PC1 = new PassengerComponent("Passenger Component #1" , 0);
}
else
{
PassengerComponent PC1 = new PassengerComponent("Passenger Component #1" , 1);
}
PC1.ready_check(Sc, Cg);
而乘客构造函数如下:
public PassengerComponent( String D , int i)
{
Description = D ;
System.out.println( " PassengerComponent: " + Description + " Has Been Created ");
switch (i) {
case 0:
InnerPC = new PassengerComponent( " Inner Passenger Component #1 " , 2 );
inner = 1 ;
break;
case 1:
inner = 0 ;
break ;
case 2:
break;
default:
break;
}
}
}
调用构造函数并且输出消息似乎没问题,但是当调用 PC1.ready_check 时,编译器找不到我创建的 PC1! (ready_check 任何想知道的人都没有问题)
抱歉问题很长,有什么想法吗?
与内部类或PassengerComponent
无关,只与变量作用域有关
由于 PC1
在 内部 if/else
块中声明,因此它仅在该块中已知。
如果要在 if/else
块之后使用 PC1
,请在上一级声明它:
int random = (int )(Math.random() * 1 + 0 );
PassengerComponent PC1;
if( random == 0)
{
PC1 = new PassengerComponent("Passenger Component #1" , 0);
}
else
{
PC1 = new PassengerComponent("Passenger Component #1" , 1);
}
PC1.ready_check(Sc, Cg);