java代码实现龙卷风_程序设计-理解java继承-遁地龙卷风
(0)写在前面
编程和现实世界是息息相关的,你是如何理解现实世界中的继承呢?
继承在编程中应理解为:对父类资源(本文只讨论方法)的使用,父类方法只提供类基本的功能,父类方法之间不存在调用关系。
(1)案例介绍
我们有这样一个任务,控制一个人上下左右移动,我们开始构建类。
public class Person
{
public void left(){}
public void right(){}
public void up(){}
public void down(){}
public static void main(String[] args)
{
String flag = "左";
Person person = new Person();
if("左".equals(flag))
{
person.left();
}
else if("右".equals(flag))
{
person.right();
}
else if("上".equals(flag))
{
person.up();
}
else if("下".equals(flag))
{
person.down();
}
}
}
等等,上面的类违反了高内聚低耦合原理,我将Person的大量方法暴漏在外面,于是我改成下面的实现
public class Person
{
public static String LEFT = "左";
public static String RIGHT = "右";
public static String UP = "上";
public static String DOWN = "下";
private void left(){}
private void right(){}
private void up(){}
private void down(){}
public void move(Object flag)
{
if(LEFT.equals(flag))
{
left();
}
else if(RIGHT.equals(flag))
{
right();
}
else if(UP.equals(flag))
{
up();
}
else if(DOWN.equals(flag))
{
down();
}
}
public static void main(String[] args)
{
Person person = new Person();
person.move(person.LEFT);
}
}
这样还是有不好的地方,move方法只是left、right、up、down方法的使用方式,它的存在不利用代码的复用,于是我换成了下面的实现。
public class Person
{
public static String LEFT = "左";
public static String RIGHT = "右";
public static String UP = "上";
public static String DOWN = "下";
protected void left(){}
protected void right(){}
protected void up(){}
protected void down(){}
}
Person类属于功能层,功能层是纯粹的,要避免组合的出现,至于这个人到底层怎么走,我们在应用层实现,应用层也是业务逻辑体现的地方。
public class My extends Person
{
public void move(Object flag)
{
if(LEFT.equals(flag))
{
left();
}
else if(RIGHT.equals(flag))
{
right();
}
else if(UP.equals(flag))
{
up();
}
else if(DOWN.equals(flag))
{
down();
}
}
}
嗯,你可能需要只能上下移动的角色哦!
原文:http://www.cnblogs.com/resolvent/p/6357702.html
java代码实现龙卷风_程序设计-理解java继承-遁地龙卷风相关推荐
- 深入理解Java虚拟机知乎_深入理解Java虚拟机(类文件结构)
深入理解Java虚拟机(类文件结构) 欢迎关注微信公众号:BaronTalk,获取更多精彩好文! 之前在阅读 ASM 文档时,对于已编译类的结构.方法描述符.访问标志.ACC_PUBLIC.ACC_P ...
- java虚引用作用_深入理解Java中的引用(二)——强软弱虚引用
深入理解Java中的引用(二)--强软弱虚引用 在上一篇文章中介绍了Java的Reference类,本篇文章介绍他的四个子类:强引用.软引用.弱引用.虚引用. 强引用(StrongReference) ...
- java 接口和虚构_深入理解Java的接口和抽象类
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...
- java: 代码过长_给初学Java,知道这4点太重要了!
本文转自:Java教学与小提琴耿祥义 好的开端是成功的一半,这个不算建议. 建议多了可能失去意义,所以只给以下4点.仅仅是建议不是法律规定.软件基本原则只有一个,满足用户的需求. 1. 职业道德 清晰 ...
- Java虚拟机不能满足_深入理解Java虚拟机--读书笔记1/3
<深入理解Java虚拟机-JVM高级特性与最佳实践> Chap 2 Java内存区域与内存溢出异常 1.Java运行时数据区域 A.程序计数器:当前线程所执行字节码的行号指示器,线程私有( ...
- java虚拟机编译顺序_深入理解Java虚拟机(程序编译与代码优化)
文章首发于微信公众号:BaronTalk,欢迎关注! 对于性能和效率的追求一直是程序开发中永恒不变的宗旨,除了我们自己在编码过程中要充分考虑代码的性能和效率,虚拟机在编译阶段也会对代码进行优化.本文就 ...
- java 代码 内存泄露_如何用Java编写一段代码引发内存泄露
Q:刚才我参加了面试,面试官问我如何写出会发生内存泄露的Java代码.这个问题我一点思路都没有,好囧. A1:通过以下步骤可以很容易产生内存泄露(程序代码不能访问到某些对象,但是它们仍然保存在内存中) ...
- java抽象类的属性_深入理解Java抽象类
基础部分内容差不多讲解完了,今天开始进入Java提高篇部分,这部分内容会比之前的内容复杂很多,希望大家做好心理准备,看不懂的部分可以多看两遍,仍不理解的部分那一定是我讲的不够生动,记得留言提醒我. 好 ...
- 龙卷风java_程序设计-理解java继承-遁地龙卷风
(0)写在前面 编程和现实世界是息息相关的,你是如何理解现实世界中的继承呢? 继承在编程中应理解为:对父类资源(本文只讨论方法)的使用,父类方法只提供类基本的功能,父类方法之间不存在调用关系. (1) ...
- java 执行字节码_深入理解java:1.2. 字节码执行引擎
执行引擎是Java虚拟机的核心组成部分之一. 首先,想想C++和Java在编译和运行时到底有啥不一样? 下图左边,C++发布的就是机器指令, 而下图右边Java发布的是字节码,字节码在运行时通过JVM ...
最新文章
- SQL Server 2005/2008 用户数据库文件默认路径和默认备份路径修改方法
- 目标检测中的Tricks
- 小程序开发填坑汇总贴
- 台湾国立大学郭彦甫Matlab教程笔记(17)numerical integration
- SAP 权限对象设置及在程序中的应用
- 网络基础2(分层模型,通信过程,以太网,ARP协议格式和具体功能详解)
- eclipse启动失败:An internal error occurred during: reload maven project
- IO模型(epoll)--详解-03
- 张庆余(1991-),男,北京卡达克数据技术中心软件业务本部助理工程师,主要研究方向为软件架构、云计算。...
- Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient报错,问题排查...
- 单点登录的原理与简单实现
- (造轮子)C 创建队列和图实现广度优先算法(BFS)和深度优先算法(DFS)(数据结构)
- VMware虚拟机与Windows文件共享
- VSCode使用记录三:中文显示乱码、设置字体大小、常用快捷键
- Quartz插件的使用
- MyBatis-Plus的使用
- Gallary(中)
- 蓝桥杯嵌入式国赛 ---- TRDO TRAO 光敏电阻
- ibm服务器面板显示,IBM System x服务器前面板指示灯说明(新版)
- 汶川地震死亡人数5月26日消息