【问题标题】:Interaction between two classes两个类之间的交互
【发布时间】:2015-04-20 17:33:48
【问题描述】:

我想知道在 2 个类之间“共享”或访问属性的最佳方式,如下所示:

class A {
    public A() {
        B myClassB = new B();
    }

    int attributeA;
}

Class B {
    int foo() {
         // I want to have something like : return attributeA;   
    }
}

我希望它很清楚。如果有人有更好的方法来问这个问题,请告诉我,因为我真的不知道怎么做。

谢谢。

【问题讨论】:

  • 我已经理解你的问题了,你可以在我的回答中分享如下所示的属性。

标签: class


【解决方案1】:

我会说通过封装,您可以在类之间共享字段(属性)。它是一个基本的 OOP 概念,可以帮助程序员修改已经实现的代码,而不会破坏其他使用这些字段的代码。

考虑下面的例子(Java)

public class Person{

   public  String name = "John";
   public int age = 25;
}

与另一个类共享 Person 类的属性

public class EncapTest {
    public static void main(String[] args) {
        Person p = new Person();
        p.name = "Tom";
        p.age = 20;
        System.out.println(p.name);
        System.out.println(p.age);
    }
}

上述方法是在类之间共享(访问)属性的不好方法,因为任何人都可以更改字段,因为它们是公共的。因此,当您更改它们时,它们会为每个人而改变(即使是那些不想要的人)。就像你在破解别人的密码一样。

请参阅下面使用封装的示例

 public class Person{

       private  String name;
       private int age;

       public void setName(String name) {
           this.name = name;
       }

       public String getName() {
           return name;
       }

       public void setAge(int age) {
           this.age = age;
       }

       public int getName() {
           return age;
       }
    }

与另一个类共享 Person 类的属性

public class EncapTest {
    public static void main(String[] args) {
        Person p = new Person();
        p.setName("Tom");
        p.setAge(20)
        System.out.println(p.getName());
        System.out.println(p.getAge());
    }
}

通过将属性设为私有并使用 getter 和 setter 方法访问它们,您将属性隐藏在类中。因此,每当您在另一个类中设置属性时,您都不会破坏其他程序员的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 2013-12-31
    相关资源
    最近更新 更多