1.组合+构造方法 赋值
组合有两种:一个类作为另一个类的属性变量 一个类的对象类型作为另一个类方法的参数
组合的目的:方法的复用(可以使用别的类的方法) 比继承耦合度低。
代码:
//测试类
package edu.xust.oo;
//面向对象复习 oo
//
public class TextMain {
//赋值可以通过setname进行赋值,或用有参的构造方法进行赋值
public static void main(String[] args) {
//1.组合+构造方法 赋值
Driver dr=new Driver();
Vehicle ve=new Vehicle();
Destination de=new Destination("成都");//直接在构造方法里写参数进行赋值
ve.setName("自行车");
dr.run(ve, de);
}
}
//Driver类
package edu.xust.oo;public class Driver {
private String name;
private Vehicle ve;// vehicle作为属性变量 第一种组合
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Vehicle getVe() {
return ve;//取出来的是vehicle的对象
}
public void setVe(Vehicle ve) {
this.ve = ve;
}
//
public void run(Vehicle ve,Destination de){//第二种组合
System.out.println("利用了交通工具"+ve.getName()+"目的地"+de.getName());
}
}
private Vehicle ve;// vehicle作为属性变量 第一种组合
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Vehicle getVe() {
return ve;//取出来的是vehicle的对象
}
public void setVe(Vehicle ve) {
this.ve = ve;
}
//
public void run(Vehicle ve,Destination de){//第二种组合
System.out.println("利用了交通工具"+ve.getName()+"目的地"+de.getName());
}
}
//Destination类
package edu.xust.oo;
public class Destination {
private String name;//私有的别人不能用,别人想使用的话要通过getname' setname取用
//构造方法:属性变量的初始化
public Destination(){
}
public Destination(String name) {
super();//调用父类构造方法·,通过super.
this.name = name;
}
private String name;//私有的别人不能用,别人想使用的话要通过getname' setname取用
//构造方法:属性变量的初始化
public Destination(){
}
public Destination(String name) {
super();//调用父类构造方法·,通过super.
this.name = name;
}
public String getName() {
return name;
}
return name;
}
public void setName(String name) {
this.name = name;
}
}
this.name = name;
}
}
//Vehicle类
package edu.xust.oo;
public class Vehicle {
String name;
String name;
public String getName() {
return name;
}
return name;
}
public void setName(String name) {
this.name = name;
}
}
this.name = name;
}
}