两个班级之间的互动

时间:2015-04-20 17:33:49

标签: class

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

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

    int attributeA;
}

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

我希望它很清楚。如果有人有更好的方式提出问题让我知道'因为我真的不知道如何。

感谢。

1 个答案:

答案 0 :(得分:0)

我想通过封装你可以分享类之间的字段(属性)。它是一个基本的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和setters方法访问它们,您将隐藏属性。因此,无论何时在另一个类中设置属性,都不会破坏其他程序员的代码。