Java 类是否必须位于同一继承树上才能具有Has-a关系
可能的答案是:Java 类是否必须位于同一继承树上才能具有Has-a关系,java,oop,scjp,Java,Oop,Scjp,可能的答案是: class Employee { private String name; void setName(String n) { name = n; } String getName() { return name; } } interface Mungeable { void doMunging(); } public class MyApp implements Mungeable { public void doMunging() { ;
class Employee {
private String name;
void setName(String n) { name = n; }
String getName() { return name; }
}
interface Mungeable {
void doMunging();
}
public class MyApp implements Mungeable {
public void doMunging() { ; }
public static void main(String[] args) {
Employee e = new Employee();
e.setName("bob");
System.out.print(e.getName());
}
}
在回答上述问题时,我选择了选项B、C、E和F
显然,唯一正确的答案是B、E和F。对于MyApp来说,与员工的关系必须在同一个继承树层次结构中。这是正确的吗?我认为,如果一个类将对象作为成员,它将自动具有has-a关系。MyApp没有Employee,没有定义成员。MyApp有主要的方法,就是它。根据以下代码,MyApp有一名员工 MyApp要想与员工建立良好的关系,两者都必须 在同一继承树层次结构中。这是正确的吗 这是不对的 我认为,如果一个类将对象作为成员,它会自动 有一段恋情 你是对的。关键是,MyApp没有员工作为成员 类是否必须位于同一继承树上才能具有Has-a关系 否,例如: 为了使MyApp与Employee建立关系,Employee e应该是一个成员变量,而不仅仅是在静态方法中本地实例化
class Person{
// Person has-a name,
// where Person is not a String,
// neither reverse
private String name;
}
这是不对的。它与employee类紧密耦合,要使其松散耦合,它必须在接口或抽象类上工作。为了使其松散耦合,代码如下所示
E. The code is loosely coupled.
这是家庭作业吗?如果是,请贴上标签。好的,我知道了。谢谢大家的回复。主要的员工呢?或者局部变量不是成员?局部变量不是成员。
class Person{
// Person has-a name,
// where Person is not a String,
// neither reverse
private String name;
}
E. The code is loosely coupled.
interface IEmployee{
...
...
}
class Employee implements IEmployee {
...
...
}
public class MyApp implements Mungeable {
public void doMunging() { ; }
//declare interface type
private IEmployee emp;
//use DI to inject an implementation of IEmployee type in MyApp
public MyApp(IEmployee object){
emp = object;
}
public static void main(String[] args) {
emp.setName("bob");
System.out.print(emp.getName());
}
}