黑马程序员_学习笔记2交通灯系统中面向对象思想的理解以及工厂模式的应用
来源:互联网 发布:java中强制类型转换 编辑:程序博客网 时间:2024/06/07 14:26
---------------------- android培训、java培训、期待与您交流! ----------------------
“两个石头磨成一个石刀,石刀砍树,树被做成椅子。
这三个小句子中对我来说最麻烦的是第二个,石刀砍树。 Material m = stoneKnife.cut(tree).第二格句子一共用到了3个对象,stoneKnife是个对象,tree是个对象,返回值是一个material对象。单从语句中,我们并不能找出对应于material的对象,这里需要程序员根据语义增加合适的类。那第3句其实就被改成了,“材料被做成椅子”。
第一个句子张老师的实现是 StoneKnife stoneKnife= stoneKnifeFactory.create(Stonestone1,Stone stone2)。张老师在这个句子的实现中多增加了一个中间层,stoneKnifeFactory。我有些疑问。这个中间类的作用不就是构造器的作用吗?用一个构造方法是不是更好呢?StoneKnife(Stone s1,Stone s2)。这样可以省略了一个类。是不是更符合题意呢?
张老师对这个面试题的解答,对我最大的帮助就是开阔了我的思路。虽然题中有些对象并没有出现,但是作为程序员的我们却拥有增加对象(类)的权利。
视频中对枚举的使用,让我更深刻的理解了枚举。枚举类其实就是拥有确定数量静态实例,且继承自enum的普通类。枚举类型的实例对象定义于类的最开始部分。
enum Colors(){
RED(构造参数,构造参数s),GREEN(构造参数,构造参数s),YELLOW(构造参数,构造参数s);//实例对象后的括号内是枚举类的私有构造方法的构造参数。可以把这
个位置理解为隐式的执行了ColorsRED= new Colors(),这个区域应该算是一个特殊枚举类的区域,这里的实例拥有这个枚举的所有非构造方法。enum自身的方法以及一个由编译器增加的value方法。value方法并不是enum中的方法,而是编译器增加的,来源比较特别
private Colors (构造参数,构造参数){//构造方法必须私有。
}
(私有的?)成员变量和(任意的?)成员方法
}
对枚举类的使用如下:
Colors cl = Colors.RED;
cl.成员方法。
今天的视频让我有些感触,一定要静下心来认真写程序,需求分析很重要的。如果没有弄清楚要做些什么就盲目乐观,或盲目悲观,都无助于程序的完成。完成程序之前,喜或悲都无意义。
做程序,只需要认真。
1,最简单的工厂类实现模式
class Factory{
2,通过反射实现这个类
class Factory{
3.增加灵活性:配置文件
但是还有一个缺点,就是如果Apple类等有包名,则如果要访问此类,必须添加包名+类名称才可以。比如Apple类的最上方:package org;则必须通过org.Apple才可以访问Apple类。因此通过Properties文件可以解决这个问题;
class Factory{
public class FactoryDemo01{
apple=Apple
---------------------- android培训、java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima
- 黑马程序员_学习笔记2交通灯系统中面向对象思想的理解以及工厂模式的应用
- 黑马程序员__java 模拟交通灯系统_面向对象学习
- 黑马程序员_面向对象的思想
- 黑马程序员_交通灯管理系统_面向对象的分析和设计
- 黑马程序员--面向对象思想的个人理解以及类中成员
- 黑马程序员_面向对象的理解
- 黑马程序员_对交通灯管理系统的理解
- 黑马程序员_面向对象的应用
- 黑马程序员_交通灯管理系统的学习
- 黑马程序员学习笔记 面向对象的理解
- 黑马程序员_学习笔记3线程并发及定时器的在交通灯系统中的使用
- [黑马程序员]第一篇:我理解的面向对象思想
- 黑马程序员-面向对象的理解以及Objective-C方法和对象分配内存的学习笔记
- 黑马程序员_交通灯管理系统学习笔记
- 黑马程序员_交通灯管理系统学习笔记
- 【黑马程序员】交通灯管理系统_学习笔记
- 黑马程序员_关于面向对象的个人理解
- 黑马程序员_交通灯管理系统笔记
- Python读写,以及修改my.ini文件--针对Python3.0版本
- ASP上传文件到本地服务器(测试成功!);11.10
- RadioGroup音乐按钮工具条
- PHP 优化
- java中有个MessageFormat(使用一下吧)
- 黑马程序员_学习笔记2交通灯系统中面向对象思想的理解以及工厂模式的应用
- android 4.0新特性总结
- MCI mciSendString和mciSendCommand详解
- Python FTP 客户端
- 【编程语言】c++语法--struct和class的区别?
- 約束だから
- 分享10个便利的HTML5/CSS3框架
- 深入双数组Trie(Double-Array Trie)
- 颠覆你的“白天鹅”