Class 如何调用另一个类的变量。
我在调用另一个类的变量时遇到问题。假设我们有class1和class2,class2有如下方法:Class 如何调用另一个类的变量。,class,variables,methods,call,invoke,Class,Variables,Methods,Call,Invoke,我在调用另一个类的变量时遇到问题。假设我们有class1和class2,class2有如下方法: public Class2{ public void method2 (Element ele, Grammar utterance, String user) { String speech =................ } } 我的目的是获取这个“speech”变量并将其传递给class1。有没有关于如何执行此操作的想法?您可以将void method2(
public Class2{
public void method2 (Element ele, Grammar utterance, String user) {
String speech =................
}
}
我的目的是获取这个“speech”变量并将其传递给class1。有没有关于如何执行此操作的想法?您可以将void method2(…)更改为public String method2(…)并返回语音。然后在第一个类中有一个class2实例,调用class2.method2(…)将给类1一个语音变量您只需要在另一个类中有一个class2实例,因此示例如下:
Class1 mySpeech = new Class1();
现在,可以访问mySpeech
的对象可以访问包含在speech中的字符串变量,因为speech是一个公共变量
mySpeech.speech
但是,最好为此创建getter/setter方法,可以使用eclipse快捷方式创建:
Sources->Generate Getters and Setters
此外,在命名类时,使用大写字母作为第一个字母,并调用驼峰式大小写约定。因此,当命名类时,将其命名为
Class1
或ClassOne
,您必须在给出字符串的对象中具有某种公共可见性。然后将字符串从第一个对象传递到第二个对象,或者通过引用将对象传递到第二个对象(不推荐这样做)
从这里开始,您只需调用方法来调用所需的行为。您可以保持代码原样,但可以将get/set方法添加到每个对象中,以便可以传递变量和引用。-Declare before-method:public-static String-speech -在方法内或方法外初始化:speech=“hi”
-来自另一个类的调用(静态范围):Class1.speech但问题是我不允许在当前代码中更改任何内容(如从void更改为public),我只能添加一些内容。因为当我更改一些内容时,会有太多代码受到影响,我需要一个解决方案,该解决方案不会修改代码,而只添加一些代码行!!!但问题是我不允许在当前代码中更改任何内容(例如从void改为public或像你对private所做的那样),我只能添加一些内容。因为当我更改一些内容时,很多代码都会因此生效,我需要一个不修改代码但只添加一些代码行的解决方案!!!这个字符串语音是在class2的一个方法中定义的,所以它是一个局部变量,我不知道如何达到它…我提供的解决方案是通用的。给定您提供的代码,您仍然可以向对象添加返回字符串值的方法,而无需向现有代码添加任何内容。对于您的示例,将getSpeech()方法添加到类2中,只需使用“returnspeech;”在方法内部。但问题是我不允许在当前代码中更改任何内容(例如从void更改为public或使其成为静态),我只能添加一些内容。因为当我更改一些内容时,那么多代码都会受到影响,我需要一个解决方案,该解决方案不修改代码,只添加一些代码行!!!这个字符串语音是在class2的一个方法中定义的,所以它是一个局部变量,我不知道如何达到它…顺便说一句,当我按照你说的那样做时,它工作得很好,非常感谢,但我不确定我是否被要求在代码上做一些修改后找到结果!!!您还可以返回语音值(字符串),而不是void或将语音作为方法参数传递
public FirstClass {
private String speech = "I am the first object!";
public String getSpeech() {
return speech;
}
}
public SecondClass {
private string speechCopy;
public void takeSpeech(string speechCopy) {
this.speechCopy = speechCopy + " (not really, I'm a copy!)";
}
}