JAVA内部类

一个造生产水果的工厂接口---FruitFactory.java

package fu.innerClass;

public interface FruitFactory {

public Fruit getFruit();
}

水果接口:Fruit

代码如下:

package fu.innerClass;

public interface Fruit {

public void say();
}

两个具体的水果,一个Apple,一个Orange

 

Apple.java

package fu.innerClass;

public class Apple implements Fruit {

private Apple(){};//私有构造方法,这样做是为了不被new出来

public void say() {
  
   System.out.println("我是苹果");
  
}

经典之处,每个具体的水果提供一个生产自己的工厂
public static FruitFactory factory=new FruitFactory(){
  
   public Fruit getFruit(){
   
    return new Apple();
   }
};

}

 

Orange.java

package fu.innerClass;

public class Orange implements Fruit {

private Orange(){};

public void say() {
  
   System.out.println("我是橘子");
  
}
和上面Apple一样的

public static FruitFactory factory=new FruitFactory(){
  
   public Fruit getFruit(){
   
    return new Orange();
   }
};

}

 

测试类

package fu.innerClass;

public class Util {

public static void main(String[] args){
  

   Fruit fruit= recieveFactory(Apple.factory);
   fruit.say();
  
   Fruit fruit2=recieveFactory(Orange.factory);
   fruit2.say();
}

该方法很重要,接受一个具体水果的工厂作为参数,返回值为Fruit引用
public static Fruit recieveFactory(FruitFactory factory){
  
  
   return factory.getFruit();//根据传入的工厂,返回具体水果
  
}
}

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值