Java 中的合成示例

java中的组合是在类中实现 has-a 关系的设计技术。我们可以使用[java继承](/community/tutorials/inheritance-java-example)或Java中的Object composition来实现代码重用。

Java中的组合

在Java中合成,Java合成,Java合成exampleJava合成是通过使用引用其他对象的实例变量实现的。例如,一个Person有一个Job。让我们通过一个Java组合示例代码来了解这一点。

Java组合示例

 1package com.journaldev.composition;
 2
 3public class Job {
 4    private String role;
 5    private long salary;
 6    private int id;
 7
 8    public String getRole() {
 9        return role;
10    }
11    public void setRole(String role) {
12        this.role = role;
13    }
14    public long getSalary() {
15        return salary;
16    }
17    public void setSalary(long salary) {
18        this.salary = salary;
19    }
20    public int getId() {
21        return id;
22    }
23    public void setId(int id) {
24        this.id = id;
25    }
26
27}
 1package com.journaldev.composition;
 2
 3public class Person {
 4
 5    //composition has-a relationship
 6    private Job job;
 7
 8    public Person(){
 9        this.job=new Job();
10        job.setSalary(1000L);
11    }
12    public long getSalary() {
13        return job.getSalary();
14    }
15
16}

下面是一个Java组合示例的测试类,它使用Person对象并获取它的薪水。

 1package com.journaldev.composition;
 2
 3public class TestPerson {
 4
 5    public static void main(String[] args) {
 6        Person person = new Person();
 7        long salary = person.getSalary();
 8    }
 9
10}

Java组合的好处

请注意,上面的java合成测试程序不受Job对象中任何更改的影响。如果你正在寻找代码重用,并且两个类之间的关系是_has-a_,那么你应该使用组合而不是继承。在java中使用组合的好处是我们可以控制其他对象对客户端类的可见性,并且只重用我们需要的对象。另外,如果在其他类实现中有任何更改,例如getSalary返回String,我们需要更改Person类以适应它,但客户端类不需要更改。组合允许在需要时创建后端类,例如,我们可以在需要时更改Person getSalary方法以在运行时初始化Job对象。进一步阅读:你知道Java编程中的一个最佳实践是使用组合而不是继承吗?查看这篇文章详细分析 [组合与继承](/community/tutorials/multiple-inheritance-in-java)

Java排版Youtube视频

最近我制作了一个YouTube视频,详细解释了用Java编写的内容,请看下面的视频。Https://www.youtube.com/watch?v=VfTiLE3RZds这就是Java或Java合成示例中的合成。我希望在设计应用程序类时,它能帮助您做出明智的决策。参考资料:维基百科Page

Published At
Categories with 技术
Tagged with
comments powered by Disqus