use-a(need-a)依赖
因为某一件事产生了关系,临时组合在一起,这件事一旦做完关系就解散
java程序体现为:一个类的方法是用到了另一个类的对象
可以在方法中传递参数
可以在方法中自己创建
农夫杀猪案例:
Farmer.java
package rely;
//农民---负责养猪
public class Farmer {
//农民养猪
//参数---几个月 返回值---是一头猪
public Pig feedPig(int month){
Pig pig = new Pig("活猪");//依赖----在屠夫的方法中使用到了猪的对象
pig.growUp(month);
return pig;
}
}
Pig.java
package rely;
//猪
public class Pig {
//属性
private String name;//名字
private int weight = 20;//重量
//构造方法
public Pig(){}
public Pig(String name){
this.name = name;
}
//方法
public void beKilled(){
System.out.println(name+"被杀了");
}
//设计一个让猪长肉的方法
//每一个月长到前一个月的2倍
//返回值 表示长大后猪的体重
public void growUp(int month){
for(int i = 1;i<=month;i++){
this.weight*=2;
}
}
//设计一个获取猪体重的方法
public int getWeight(){
return this.weight;
}
//设计一个获取名字的方法
public String getName(){
return this.name;
}
}
ButCher.java
package rely;
//屠夫
public class ButCher {
//属性
//方法
public void killPig(Pig pig){
System.out.println("屠夫执行了杀猪方法");
String pigName = pig.getName();
int pigWeight = pig.getWeight();
System.out.println(pigName+"的体重为"+pigWeight);
pig.beKilled();
}
}
Test.java
package rely;
public class Test {
public static void main(String[] args){
//创建农夫对象
Farmer farmer = new Farmer();
//农夫养猪
Pig pig = farmer.feedPig(5);
//创建屠夫对象
ButCher butcher = new ButCher();
//屠夫杀猪
butcher.killPig(pig);
}
}