class A{ } class B{ public void display(A a){ //do something with a here } } public class Test{ public static void main(String[] args){ A a=new A(); B b=new B(); b.display(a); }
第一,这个对象b是该类A的成员变量,如果要在该类的尾部使用该对象,那就很简单,没啥不可以的。如果,该成员变量b是实例变量,只需要创建一个该类的对象阿,使用对象名+点操作符+成员变量(即对象b)名就可以访问了:a1.b ==========================================4楼说的也不清楚呀,楼主可别被他误导哦...对于一个类,一般所谓的成员变量就是指实例变量;另外还有一种就是类变量,就是静态的成员变量.对楼主的问题还有一种做法就是用提的方法返回你要的这个对象,但这个对象只能是类变量,所以提供的方法也只能是静态的. 例如: public class A{ public static A a = new A(); public static A getInstance(){ return a; } } public class B{ public static void main(String[] args){ System.out.println(A.getInstance().toString()); } } 不过这样做并没有直接用类名.类变量好用的,也没有这个必要的.不过你若看过设计模式,一定知道singleton的实现,你可以看一下的: public class Singleton{
private Singleton(){ } private static Singleton singleton = new Singleton(); public static Singleton getInstance(){ return singleton; } }也能实现你的功能,但这个只能用调用方法来得到你要对象,而且在整个jvm实例中只能被有一个实例.
public static String s;
}public class B{
public void print(){
System.out.println(A.s);
}
}
public static String s;
}public class B{
public void print(){
System.out.println(A.s);
}
}
这个话不严格,一个对象b出现在一个类A里面,只有两种可能,第一,这个对象b是该类A的成员变量,如果要在该类的尾部使用该对象,那就很简单,没啥不可以的。如果,该成员变量b是实例变量,只需要创建一个该类的对象阿,使用对象名+点操作符+成员变量(即对象b)名就可以访问了:a1.b
如果该成员变量b是静态的,那么,除了上面的方法外,还可以通过类名访问:A.b 。第二,这个对象出现在类的方法内部,是一个局部变量。那么,在类的外部是无法使用该对象的,因为局部变量旨在方法内部有意义。
}
class B{
public void display(A a){
//do something with a here
}
}
public class Test{
public static void main(String[] args){
A a=new A();
B b=new B();
b.display(a);
}
注意:你的display方法里的形参变量a是一个局部变量,它在该方法之外没有定义的。b.display(a);
这个语句是错误的,编译通不过。
第一,这个对象b是该类A的成员变量,如果要在该类的尾部使用该对象,那就很简单,没啥不可以的。如果,该成员变量b是实例变量,只需要创建一个该类的对象阿,使用对象名+点操作符+成员变量(即对象b)名就可以访问了:a1.b ==========================================4楼说的也不清楚呀,楼主可别被他误导哦...对于一个类,一般所谓的成员变量就是指实例变量;另外还有一种就是类变量,就是静态的成员变量.对楼主的问题还有一种做法就是用提的方法返回你要的这个对象,但这个对象只能是类变量,所以提供的方法也只能是静态的.
例如: public class A{
public static A a = new A(); public static A getInstance(){
return a;
}
} public class B{
public static void main(String[] args){
System.out.println(A.getInstance().toString());
}
}
不过这样做并没有直接用类名.类变量好用的,也没有这个必要的.不过你若看过设计模式,一定知道singleton的实现,你可以看一下的: public class Singleton{
private Singleton(){
} private static Singleton singleton = new Singleton(); public static Singleton getInstance(){
return singleton;
}
}也能实现你的功能,但这个只能用调用方法来得到你要对象,而且在整个jvm实例中只能被有一个实例.
是的,可以说lixkyx说的不存在实质问题,但对于一个被学者来说,一会是成员变量,一会是实例变量,一会又是静态的成员变量.哪不清楚的人可能还会问哪不是静态的变量呢,哪又叫什么呀? 然后我又说了类变量,这岂不让被学者头痛.或者你这样说:非静态的成员变量(就是实例变量)和静态的成员变量(就是类变量),这样不是清楚些?再说我又没说你说错了,只是说你没说清楚呀,还执迷不误?