2013-03-05 25 views
-2

我要访问在类的构造函数的名字和年龄的价值选择,我提到的公共选择(){ 它们存储在NEWP的GetValues方法获取构造函数中的值来自另一个类的方法?

Choose.java

class Choose { 
    String Cn,Ca; 
    public Choose(){ 
     btn.addMouseListener{ 
     } 
    } 

    public static void gtNp(string nn,string aa) { 
     Cn=nn; 
     Ca=aa; 
    } 

} 

NewP.java

class NewP { 
    Choose C1 = new Choose(); 

    NewP() { 
     btn.addMouseListener{ 
      GetValues(); 
      Choose.gtNp(name,age);  
     } 
    } 

    public NewP GetValues(){ 
     Name=   ; 
     Age=   ; 
     return null; 
    } 

} 
+1

我认为你应该首先从类和对象等基础知识开始。 – Abubakkar 2013-03-05 16:59:16

+0

http://docs.oracle.com/javase/tutorial/java/concepts/index.html – Iraklis 2013-03-05 17:14:17

+0

1)注意你的变量命名方案(变量应该以小写开头),2)请格式化你的代码! 3)你不能使用静态方法来访问实例变量4)将实例变量标记为private,并在必要时提供public * getters和setters *(非静态方法) – 2013-03-05 17:40:17

回答

3

我可能不会让当前的代码点,但这是一种混淆的方式。我发现了几个问题。

首先,您有一个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方法的领域。您可能需要检查settersgetters,并实施它们。我会留下这些作为你的锻炼。

下面是一些基本的链接,帮助您:

+0

Thnxz为基本链接。但仍然困惑。 你能提供给我更多的链接,这将清除我的概念相关的对象,从构造函数的方法调用,并在构造函数中使用其他类的值? – AshwinK 2013-03-05 17:43:22

+0

我已经添加了两个新链接。一个用于Oracle Java教程的基础,另一个用于课程教程。我建议你阅读从零开始的所有内容,然后往上走。 – Gamb 2013-03-05 17:51:38

相关问题