Java:方法中的访问类

Java:方法中的访问类,java,class,Java,Class,我希望有一个方法声明两个字符串并为它们赋值。然后使用另一种方法读取这些值 我有这样的结构: public class ABC extends CDE implements EFG { public void firstMethod(valueOne, valueTwo) { class TestClass { public String testValue = valueOne; public String anotherV

我希望有一个方法声明两个字符串并为它们赋值。然后使用另一种方法读取这些值

我有这样的结构:

public class ABC extends CDE implements EFG {
    public void firstMethod(valueOne, valueTwo) {
        class TestClass {
            public String testValue = valueOne;
            public String anotherValue = valueTwo;
        }
    }

    public void readMethod() {
        // HERE I WANT TO READ testValue AND ASSIGN IT A NEW VALUE
    }
}
我该怎么做


还有更好的方法吗?

你确定你需要上课吗

可能一个简单的字段声明就足够了:

   public class ABC extends CDE implements EFG {
        public String testValue;
        public String anotherValue;


        public void firstMethod(String valueOne, String valueTwo) {
             // do whatever you wish with testValue and anotherValue
        }

        public void readMethod() {        
            // here you have access to both variables        
        }

    }

也许这符合你的标准? 由于内部类的范围,您当前所要求的是不可能的

您还可以在构造函数中初始化这个私有类实例

public class Sample {
    class TestClass {
        public String testValue;
        public String anotherValue;
    }

    private TestClass localTest = new TestClass();

    public void firstMethod(valueOne, valueTwo) {
        localTest.testValue = valueOne;
        localTest.anotherValue = valueTwo;
    }

    public void readMethod() {
        localTest.testValue = "test1";
        localTest.anotherValue = "anotherValue";

        System.out.println(localTest.testValue);
    }
}

使本地类成为全局类,并通过实例设置/读取值:

public class ABC extends CDE implements EFG {

    class TestClass {
        public String testValue = valueOne;
        public String anotherValue = valueTwo;
    }
    private testClassInstance = new TestClass()

    public void firstMethod(valueOne, valueTwo) {
         testClassInstance.testValue = valueOne
         testClassInstance.anotherValue = valueTwo
    }

    public void readMethod() {
        System.out.println(testClassInstance.valueOne)
        System.out.println(testClassInstance.valueTwo)
    }
}

您只需创建一个包含
testValue
anotherValue
的类,并在组件类之外声明该类,例如:

class ExampleBean {
  private String testValue;
  private String anotherValue;

  //getters and setters
}
完成后,您可以将该类的引用保存到组件类中并访问该值,例如:

public class ABC extends CDE implements EFG {
    ExampleBean exampleBean = new ExampleBEan();
    public void firstMethod(valueOne, valueTwo) {
        exampleBean.setValueOne(valueOne);
        exampleBean.setAnotherValue(valueTwo);
    }

    public void readMethod() {
        String value = exampleBean.getValueOne();
    }
}

您正在用方法声明一个类,这是不正确的

您需要理解类和方法的真正含义(Google Java OOP):

1-您应该创建一个类并声明所需的变量

2-为默认值生成构造函数

3-使设置器设置(分配)这些值


4-让getter读取这些值

为什么不将
testValue
另一个值
声明为
ABC
类的属性,而不是声明一个本地类?这有什么意义?您的代码没有编译
valueOne
valueTwo
缺少其类型。--为什么要在方法中声明类?--要将信息从一个方法传递到另一个方法,您应该使用参数。您所做的是声明一个类,而从不创建它的任何实例。因此,这些值从未设置过,并且无论如何都无法读取。内部类应该代表什么?@ernest_k在其他地方我将调用firstMethod来声明这两个字符串,然后调用readMethod来读取这两个字符串并更改它们的值。为什么?为什么不直接使用字段?更新了答案,在发布后立即意识到。初始化?你试过了吗?您将得到一个
NullPointerException