在java中访问对象

在java中访问对象,java,object,Java,Object,我创建了一个java类,比如说class1,来定义一个存储在内存中某处的对象。我想使用另一个类,比如说class2来访问这个对象。如何从class2访问我在class1中定义的对象及其本质?谢谢。首先,在Java中,我们通常使用以大写字母开头的类名(Class1和Class2) 这意味着您可以通过构造函数访问Class2中Class1的对象 在我的示例中,我使用的是默认构造函数,但您也可以使用Class1中的参数定义其他构造函数,如: public class Class1 { priv

我创建了一个java类,比如说
class1
,来定义一个存储在内存中某处的对象。我想使用另一个类,比如说
class2
来访问这个对象。如何从
class2
访问我在
class1
中定义的对象及其本质?谢谢。

首先,在Java中,我们通常使用以大写字母开头的类名(
Class1
Class2

这意味着您可以通过构造函数访问Class2中Class1的对象

在我的示例中,我使用的是默认构造函数,但您也可以使用Class1中的参数定义其他构造函数,如:

public class Class1 {
    private String s1, s2;
    public Class1(String s1, String s2) {
        // do something (in general assign s1 and s2 to attributes s1 and s2
    }
}

假设你有一部手机,想让你的朋友使用。你是做什么的?你给它打电话,对吗?Java对象也是如此

Foo foo = new Foo(); 
Bar bar = new Bar(foo);
// now bar has a reference to the foo object, and can use it in every method.

更具体地说:

Phone phone = new Phone();
Friend friend = new Friend();
friend.makeAPhoneCall(phone);

class2
中创建类型为
class1
的字段,如下所示:

public class class2{
    class1 my_obj;

    //other code
}
class2 my_obj_c2 = new class2();
my_obj_c2.my_obj = new class1();
您可以这样访问它:

public class class2{
    class1 my_obj;

    //other code
}
class2 my_obj_c2 = new class2();
my_obj_c2.my_obj = new class1();
您还可以通过以下方法访问该对象:

class2 ex_obj = my_obj_c2.getClass1Obj();
如果此方法具有此声明:

public class1 getClass1Obj(){
    return my_obj;
}

如果您没有或不想在class2内的这个class1对象上使用较低的特权,请使用方法。

如果我没弄错的话,您可以在class2中定义class1的属性

public class Class2 {
   private Class1 myclass;

   public void setmyclass(Class1 myclass1) {
   this.myclass = myclass1;
   }
   public Class1 getmyclass() {
   return this.myclass;
   }
}
然后是main或任何你想去的地方

Class1 mycreatedclass1 = new Class1();
Class2 mycreatedclass2 = new Class2();
mycreatedclass1.setmyclass(mycreatedclass2);