很抱歉,如果标题不够准确,或者甚至可能是我自己的翻译。我是德国人,也是编码的初学者,所以请轻松一下。 所以我用JAVA编写了一个程序。这是我在一本书中选择并尝试扩展的银行帐户的程序。现在,为了在这个线程中保持简单,我显然减少了我的示例代码问题。
public class Test1 {
public static void method(){
k.setNumber(300); // This is where the problem is. From this method
// I cannot acces the in main created class
// object from 'Test'
}
public static void main(String[] args) {
Test k = new Test();
method();
k.getNumber();
}
}
现在班级'测试:
public class Test {
int number;
public int getNumber(){
return number;
}
public void setNumber(int nr){
number = nr;
}
}
那有什么办法吗?否则我将不得不在'main'中写入所有内容,这在本示例中没有问题,但在我的原始代码中并不那么容易。
感谢您的帮助和建议。希望之前没有发布,因为我已经搜索了这个网站和网站。
答案 0 :(得分:3)
目前,k
仅属于main方法。要从同一个类中的其他方法访问它,您需要使其成为类变量。这应该是你需要的:
public class Test1 {
private static Test k;
public static void method() {
k.setNumber(300);
}
public static void main(String[] args) {
k = new Test();
method();
k.getNumber();
}
}
答案 1 :(得分:1)
您也可以将它用作方法的变量:
public class Test1 {
public static void method(Test test){
test.setNumber(300);
}
public static void main(String[] args) {
Test k = new Test();
method(k);
k.getNumber();
}
}
答案 2 :(得分:0)
你需要定义
Test K = new Test()
在任何一种方法之外,即主要和方法。大多数情况下你需要制作' K'两种方法都可以看到全局。
答案 3 :(得分:0)
你可以这样做:
public class Test1 {
public static void method(Test k){
k.setNumber(300); // This is where the problem is. From this method
// I cannot acces the in main created class
// object from 'Test'
}
public static void main(String[] args) {
Test k = new Test();
method(k);//pass this test class instance to method
k.getNumber();
}
}
答案 4 :(得分:0)
您可以将k
设置为全局变量,也可以将其作为method
的参数传递给它。
public static void main( String[] argv )
{
final Test k = new Test();
method( k );
System.out.println( k.getNumber() );
}
public static void method(Test k)
{
k.setNumber( 2 );
}