Java 从主目录外的方法访问类对象
很抱歉,如果标题没有它应该是准确的,甚至可能是错误的翻译我的一部分。我是德国人,也是一名代码初学者,所以请你给我放轻松。 所以我用JAVA编写了一个程序。这是一个银行账户的程序,我在一本书中找到了它,并试图扩展它。现在,为了在这个线程中保持简单,我显然减少了关于这个问题的示例代码Java 从主目录外的方法访问类对象,java,class,methods,Java,Class,Methods,很抱歉,如果标题没有它应该是准确的,甚至可能是错误的翻译我的一部分。我是德国人,也是一名代码初学者,所以请你给我放轻松。 所以我用JAVA编写了一个程序。这是一个银行账户的程序,我在一本书中找到了它,并试图扩展它。现在,为了在这个线程中保持简单,我显然减少了关于这个问题的示例代码 public class Test1 { public static void method(){ k.setNumber(300); // This is where the problem is. Fro
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”中编写所有内容,这在本例中是没有问题的,但在我的原始代码中,这并不容易做到
谢谢你的帮助和建议。希望以前没有发布过,因为我已经搜索过这个网站和web。您需要定义
Test K = new Test()
在两种方法之外,即main和method。大多数情况下,您需要使“K”全局对这两种方法都可见。您需要定义
Test K = new Test()
在两种方法之外,即main和method。大多数情况下,您需要使“K”全局对两种方法都可见。目前,
K
只属于主方法。要从同一类中的其他方法访问它,需要将其设置为类变量。这应该是您所需要的:
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();
}
}
目前,
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();
}
}
您可以这样做:
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();
}
}
您可以这样做:
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();
}
}
您可以将
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 );
}
您可以将
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 );
}
您还可以将其用作方法的变量:
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();
}
}
您还可以将其用作方法的变量:
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();
}
}
k
也应该是static
。它可以工作!!非常感谢你和所有努力帮助我的人。在这个过程中,我也明白了为什么p'rivate static Scanner'是一个类变量。这是一个类似的情况。k
也应该是static
。它可以工作!!非常感谢你和所有努力帮助我的人。在这个过程中,我也明白了为什么p'rivate static Scanner'是一个类变量。这是一个类似的案例。