Java 从另一个类的方法获取构造函数中的值?
我想在我提到的public Choose()的Choose类的构造函数中访问name和age的值{ 存储在NewP的GetValues方法中 选择.javaJava 从另一个类的方法获取构造函数中的值?,java,swing,Java,Swing,我想在我提到的public Choose()的Choose类的构造函数中访问name和age的值{ 存储在NewP的GetValues方法中 选择.java class Choose { String Cn,Ca; public Choose(){ btn.addMouseListener{ } } public static void gtNp(string nn,string aa) { Cn=nn;
class Choose {
String Cn,Ca;
public Choose(){
btn.addMouseListener{
}
}
public static void gtNp(string nn,string aa) {
Cn=nn;
Ca=aa;
}
}
class NewP {
Choose C1 = new Choose();
NewP() {
btn.addMouseListener{
GetValues();
Choose.gtNp(name,age);
}
}
public NewP GetValues(){
Name= ;
Age= ;
return null;
}
}
NewP.java
class Choose {
String Cn,Ca;
public Choose(){
btn.addMouseListener{
}
}
public static void gtNp(string nn,string aa) {
Cn=nn;
Ca=aa;
}
}
class NewP {
Choose C1 = new Choose();
NewP() {
btn.addMouseListener{
GetValues();
Choose.gtNp(name,age);
}
}
public NewP GetValues(){
Name= ;
Age= ;
return null;
}
}
我目前可能没有理解你的代码的要点,但在某种程度上它是令人困惑的。我发现了几个问题 首先,您有一个
static
方法设置Choose
类的值,这会导致错误,因为您是从静态上下文访问非静态变量。您应该改用getter和setter(或者直接使用字段,其他人可能会说)。使用此方法:
public static void gtNp(string nn,string aa){
Cn=nn; //Java convention: fields and methods start with lowercase.
Ca=aa;
}
将导致Choose
的所有实例共享相同的值,但当然,这可能是所需的行为。如果它们与实例相关,则可以在构造函数中传递这些值:
public Choose(String nn, String aa){
cn = nn; //To adapt your code to the convention, I've used lowercases here.
ca = aa;
btn.addMouseListener{
}
无论哪种方式,您都需要为这些字段添加getter或setter。您可能需要检查什么是setter
和getter
,并实现它们。我将把它们作为练习留给您
以下是一些帮助您的基本链接:
- (在本例中,您需要检查封装的概念)
private
,并在必要时提供公共getter和setter(非静态方法)David但是即使我用大写字母声明变量,我的程序运行也没有错误。你能给我一个到教程的链接,让我了解更多关于1]静态方法2]实例变量3]getter和settersThnxz的基本链接。但是仍然对此感到困惑。你能给我提供更多的链接来澄清我关于对象、方法调用fr的概念吗om构造函数和在构造函数中使用其他类的值?我添加了两个新链接。一个用于Oracle Java教程的基础,另一个用于类教程。我建议您阅读从零开始的所有内容。