java-Class类方法及工厂模式

最近学习Class类的方法及使用,链接一些值得参考的讲解~
一、简述Class类的getDeclaredMethod和getMethod的区别
https://blog.csdn.net/GuoCong666/article/details/79131280

二、详解Class对象及java发射机制[重点推荐]
http://www.importnew.com/21235.html

应用场景之工厂模式,工厂模式是java编程24种设计模式之一,除了基于类的继承与多态外,重要的还使用了Class类,如newInstance()方法,代码如下:

//---Human为一接口,YellowHuman,WhiteHuman,BlackHuman分别是三个实现Human接口的类---
public class HumanFactory {
//定一个烤箱,泥巴塞进去,人就出来,这个太先进了
public static Human createHuman(Class c){
Human human=null; //定义一个类型的人类
try {
human = (Human)Class.forName(c.getName()).newInstance(); //产生一个人种
} catch (InstantiationException e) {//你要是不说个人种颜色的话,没法烤,要白的黑,你说话了才好烤
System.out.println("必须指定人种的颜色");
} catch (IllegalAccessException e) { //定义的人种有问题,那就烤不出来了,这是...
System.out.println("人种定义错误!");
} catch (ClassNotFoundException e) { //你随便说个人种,我到哪里给你制造去?!
System.out.println("混蛋,你指定的人种找不到!");
}
return human;
}
}
//然后我们再把女娲声明出来:
package com.cbf4life;
/**
* @author cbf4Life cbf4life@126.com
* I'm glad to share my knowledge with you all.
* 首先定义女娲,这真是额的神呀
*/
public class NvWa {
public static void main(String[] args) {
//女娲第一次造人,试验性质,少造点,火候不足,缺陷产品
System.out.println("------------造出的第一批人是这样的:白人-----------------");
Human whiteHuman = HumanFactory.createHuman(WhiteHuman.class);
whiteHuman.cry();
whiteHuman.laugh();
whiteHuman.talk();
//女娲第二次造人,火候加足点,然后又出了个次品,黑人
System.out.println("\n\n------------造出的第二批人是这样的:黑人-----------------");
Human blackHuman = HumanFactory.createHuman(BlackHuman.class);
blackHuman.cry();
blackHuman.laugh();
blackHuman.talk();
//第三批人了,这次火候掌握的正好,黄色人种(不写黄人,免得引起歧义),备注:RB人不属于此列
System.out.println("\n\n------------造出的第三批人是这样的:黄色人种-----------------");
Human yellowHuman = HumanFactory.createHuman(YellowHuman.class);
yellowHuman.cry();
yellowHuman.laugh();
yellowHuman.talk()
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值