我正在学习java,我在从B类访问A类方法中定义的变量时遇到问题。这是我的代码:
public class A{
......
......
public int dummy(){
for(int i=1; i<=10; i++){
//here are some code
}
我想在B级以下访问i的价值。我试图实现这一目标,但没有取得任何成功。
public class B{
.....
.....
A var1 = new A();
int new = var1.i;
}
答案 0 :(得分:0)
如果您确实想要从i
外部访问A
,则需要将其设为公开会员,如下所示:
public class A{
public int i;
public int dummy(){
for(i=1; i<=10; i++){
// some code
}
}
}
但是,您所描述的内容并没有多大用处。通常,像索引i
这样的迭代器被声明为循环的局部(在循环外部不可访问,更不用说函数或类),因为它对循环外的任何东西都没有意义。
答案 1 :(得分:0)
您无法执行此操作,i
循环中声明的变量for
仅在for
循环内可访问。
如果您想以您尝试的方式访问变量,则必须将其声明为实例变量或静态变量。
public class A{
public int j;
......
public int dummy(){
for(int i=1; i<=10; i++){
j = i;
}
}
答案 2 :(得分:0)
在当前的实现中,您无法访问i
,因为它在for循环中是本地声明的,而不是作为成员变量或类A的静态变量。
您也无法命名变量new
,因为new
是保留字。
public class A {
private int i = 1;
public int getI() {
return this.i;
}
}
public class B {
public void someMethod() {
A var1 = new A();
int var2 = var1.getI();
}
}
答案 3 :(得分:0)
public class A{
public A(){
}
public int dummy(){
int i;
for(i=1; i<=10; i++){
//here are some code
}
return i;
}
}
public class B{
public B(){
A var1 = new A();
int new = var1.dummy();
}
}
那工作?