Java基础:对象和if子句
我对一个物体有一个非常基本的问题 我在main方法中的if()语句中创建对象。(有一个else,因此它将始终被创建。) 该对象有一个print()方法,可以正常工作,但是当我将myobject.print()放在创建它的if()子句之外时,我得到一个错误:“找不到符号” 我想我犯了一个愚蠢的初学者错误,但是if()子句中的myobject.print()可以正常工作,所以我的问题是,我的对象发生了什么?(主方法在这两者之间不执行任何其他操作..)Java基础:对象和if子句,java,Java,我对一个物体有一个非常基本的问题 我在main方法中的if()语句中创建对象。(有一个else,因此它将始终被创建。) 该对象有一个print()方法,可以正常工作,但是当我将myobject.print()放在创建它的if()子句之外时,我得到一个错误:“找不到符号” 我想我犯了一个愚蠢的初学者错误,但是if()子句中的myobject.print()可以正常工作,所以我的问题是,我的对象发生了什么?(主方法在这两者之间不执行任何其他操作..) else默认为20、10,并随机填充1/4 {
else默认为20、10,并随机填充1/4
{
INTA=20;
int b=10;
表myTable=新表(a,b);
myTable.randomfill(Math.round((a*b)/4));//在默认值稍后更改时进行舍入
System.out.println(“打印表…”);
myTable.print()阅读变量和块的作用域;问题是您在块内声明了变量,并尝试在块外引用它,使其超出范围,因此无法识别。阅读变量和块的作用域;问题是您在块内声明了变量,并尝试在块外引用它该块,使其超出范围,因此无法识别。myTable仅作用于else块。它在else块完成后不可见。如果要在else块外部访问它,可以在else块外部定义myTable,并在else块内部为其分配对象
Table myTable =null;
else default to 20, 10, and fill randomly 1/4
{
int a = 20;
int b = 10;
myTable = new Table(a,b);
myTable.randomfill(Math.round((a*b)/4)); //round in case defaults change later
System.out.println("Printing Table .... ");
myTable.print(); <-- here it works
}
//always print !!
System.out.println("Printing Table .... ");
if(myTable != null){ //Make sure myTable is not null.
myTable.print(); <-- won't work
}
Table myTable=null;
否则默认为20、10,并随机填充1/4
{
INTA=20;
int b=10;
myTable=新表(a,b);
myTable.randomfill(Math.round((a*b)/4));//在默认值稍后更改时进行舍入
System.out.println(“打印表…”);
myTable.print();myTable的作用域仅限于else块。它在else块完成后不可见。如果要在else块外部访问它,可以在else块外部定义myTable,并在else块内部为其分配对象
Table myTable =null;
else default to 20, 10, and fill randomly 1/4
{
int a = 20;
int b = 10;
myTable = new Table(a,b);
myTable.randomfill(Math.round((a*b)/4)); //round in case defaults change later
System.out.println("Printing Table .... ");
myTable.print(); <-- here it works
}
//always print !!
System.out.println("Printing Table .... ");
if(myTable != null){ //Make sure myTable is not null.
myTable.print(); <-- won't work
}
Table myTable=null;
否则默认为20、10,并随机填充1/4
{
INTA=20;
int b=10;
myTable=新表(a,b);
myTable.randomfill(Math.round((a*b)/4));//在默认值稍后更改时进行舍入
System.out.println(“打印表…”);
myTable.print();其他人说了什么。如果您有以下内容:
if (x == y) {
MyObject obj = new MyObject();
}
如果退出if
的{}
,则不会定义obj
要使对象在“外部”可访问,请执行以下操作:
MyObject obj = null;
if (x == y) {
obj = new MyObject();
}
(请注意,您没有在{}
中“声明”obj
——您省略了前面的MyObject
)其他人说的话。如果您有以下情况:
if (x == y) {
MyObject obj = new MyObject();
}
如果退出if
的{}
,则不会定义obj
要使对象在“外部”可访问,请执行以下操作:
MyObject obj = null;
if (x == y) {
obj = new MyObject();
}
(请注意,您没有在{}
中“声明”obj
——您去掉了前面的MyObject
)像myTable这样的局部变量具有作用域(仅可见)代码块是最里面的一组花括号,因此myTable只能在else块结束之前使用
Table myTable =null;
else default to 20, 10, and fill randomly 1/4
{
int a = 20;
int b = 10;
myTable = new Table(a,b);
myTable.randomfill(Math.round((a*b)/4)); //round in case defaults change later
System.out.println("Printing Table .... ");
myTable.print(); <-- here it works
}
//always print !!
System.out.println("Printing Table .... ");
if(myTable != null){ //Make sure myTable is not null.
myTable.print(); <-- won't work
}
如果希望它在else块之后可见,则需要在If之前删除它。例如:
Table myTable = new Table(a,b);
if (some condition) {
// code removed
} else default to 20, 10, and fill randomly 1/4 {
// code removed
}
// myTable now visible here and until the end of this block
像myTable这样的局部变量在声明它的代码块中有作用域(仅可见)。代码块是最里面的一组花括号,因此myTable只能在else块结束之前使用
Table myTable =null;
else default to 20, 10, and fill randomly 1/4
{
int a = 20;
int b = 10;
myTable = new Table(a,b);
myTable.randomfill(Math.round((a*b)/4)); //round in case defaults change later
System.out.println("Printing Table .... ");
myTable.print(); <-- here it works
}
//always print !!
System.out.println("Printing Table .... ");
if(myTable != null){ //Make sure myTable is not null.
myTable.print(); <-- won't work
}
如果希望它在else块之后可见,则需要在If之前删除它。例如:
Table myTable = new Table(a,b);
if (some condition) {
// code removed
} else default to 20, 10, and fill randomly 1/4 {
// code removed
}
// myTable now visible here and until the end of this block
这是评论,不是回答。这是评论,不是回答。