java 面向对象(封装 组合 抽象类 接口)(一)封装组合

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());
 }
}
 
//Destination类
 
package edu.xust.oo;
public class Destination {
 private String name;//私有的别人不能用,别人想使用的话要通过getname' setname取用
 //构造方法:属性变量的初始化
 public Destination(){
  
 }
 public Destination(String name) {
  super();//调用父类构造方法·,通过super.
  this.name = name;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
}
 
//Vehicle类
 
package edu.xust.oo;
public class Vehicle {
 String name;
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
}

猜你喜欢

转载自www.cnblogs.com/Sonya/p/10725085.html