1.1抽象过程

1)万物皆对象。

2)程序是对象的集合,他们通过发送消息来告知彼此所要求做的。

3)每个对象都有自己的由其他对象所构成的存储。

4)每个对象都拥有其类型。

5)某一特定类型的所有对象都可以接收同样的消息。

上面是书上总结的内容,具体代码如下:

//每个对象都有一个接口,接口有对象相关的功能和数据
public class Light {public void on() {System.out.println("开灯");}public void off() {System.out.println("关灯");}public void brighten() { System.out.println("调亮"); } public void dim() { System.out.println("调暗"); } }

1.6继承

对象这种观念,本身是十分方便的工具,通过概念可以将数据和功能封装到一起。这些概念用关键词class来表示,它们形成了编程语言中的基本单位。

引出问题:创建一个类之后,即使另一个新类与其具有相似的功能,还得重新创建一个新类。

类型不仅仅只是描述了作用与对象集合上的约束条件,同时还有与其他类型之间的关系。继承使用基类型和导出类型的概念表示了这种类型之间的相似性。一个基类型包含其所有导出类型所共享的特性和行为。可以创建一个基础类型来表示系统中某些对象的核心概念,从基类型中导出其它类型,来表示此核心可以被实现的各种不同方式。

上面是书上总结的内容,具体代码如下:

/*** 几何图形* @author Administrator**/
public class Shape {private String color;public void draw() {System.out.println("几何图形尺寸");}public void erase() {System.out.println("几何图形擦除"); } public void move() { System.out.println("几何图形移动"); } public String getColor() { return color; } public void setColor(String color) { this.color = color; } }

/***   圆形* @author Administrator**/
public class Circle extends Shape {@Overridepublic void draw() {System.out.println("圆形尺寸");}@Overridepublic void erase() {System.out.println("圆形擦除");}}

/*** 正方形* @author Administrator**/
public class Square extends Shape {@Overridepublic void draw() {System.out.println("正方形尺寸");}@Overridepublic void erase() {System.out.println("正方形擦除");}}

/*** 三角形* @author Administrator**/
public class Triangle extends Shape {@Overridepublic void draw() {System.out.println("三角形尺寸");}@Overridepublic void erase() {System.out.println("三角形擦除");}public void filpVertical() { } }

1.7伴随多态的可互换对象

在处理类型的层次结构时,经常想把一个对象不当作他所属的特定类型来对待,而是将其当作其基类的对象来对待。

上面是书上总结的内容,具体代码如下:

public class ShapeTest {
  @Test
  public void test1() {
    Shape shape = new Shape();
    Shape circle = new Circle();
    Square square = new Square();
    Triangle triangle = new Triangle();
    doSomething(shape);
    doSomething(circle);
    doSomething(square);
    doSomething(triangle);
  }
  
  public void doSomething(Shape shape){
    shape.draw();
    shape.move();
  }
/* 几何图形尺寸
几何图形移动
圆形尺寸
几何图形移动
正方形尺寸
几何图形移动
三角形尺寸
几何图形移动 */
}

面向对象编程有三大特性:封装、继承、多态。

参考资料:Java编程思想(四)

转载于:https://www.cnblogs.com/zhongli1/p/10012476.html

Java编程思想学习(一)----对象导论中多态的理解相关推荐

  1. Java编程思想学习笔记-第11章

    <?xml version="1.0" encoding="utf-8"?> Java编程思想学习笔记-第11章 Java编程思想学习笔记-第11章 ...

  2. JAVA编程思想学习笔记——第一章 对象导论

    搞了一年多java,野路子出身,发现java基础这块还是相当的薄弱!故决定学习<Java编程思想>这本书.在此把学习的知识点记录下! 面向对象的五大特性 1.万物皆为对象 2.程序是对象的 ...

  3. Java编程思想学习笔记4 - 序列化技术

    今天来学习下Java序列化和反序列化技术,笔者对<Java编程思想>中的内容,结合网上各位前辈的帖子进行了整理和补充,包括: 序列化概述 Java原生序列化技术 Hessian序列化技术 ...

  4. java编程思想学习(1):抽象

    今天开始java编程思想的导读,希望自己能更好的理解程序.全书1461页,恐怖,尽量一天看十页八. OOP 面向对象程序设计 记录一点东西八 第一个小课程,抽象过程 看看概念 1万物皆为对象 2程序是 ...

  5. Java编程思想 学习笔记1

    一.对象导论 1.抽象过程 Alan Kay曾经总结了第一个成功的面向对象语言.同时也是Java所基于的语言之一的Smalltalk的五个基本特性,这些特性表现了纯粹的面向对象程序设计方式 1)万物皆 ...

  6. Java编程思想 学习笔记7

    七.复用类 1.组合语法 在新的类中产生现有类的对象.由于新的类是由现有类的对象所组成,所以这种方法叫做组合. 类中域为基本类型时能够自动被初始化为零.对象引用被初始化为null. 编译器不是简单地为 ...

  7. java编程思想学习笔记(第七章:复用类)

    复用代码是java众多引人注目的功能之一.但是要想成为极具革命性的语言,仅仅能够复制代码并对之加以改变是不够的,它还必须能够做更多的事情. 7.1组合语法 将对象引用置于新类中.每一个非基本类型的对象 ...

  8. Java编程思想学习(一) 一切都是对象

    前言 Java是基于C++的,但Java是一种更加纯粹的面向对象程序设计语言. C++和Java都是混合/杂合型语言.杂合型语言允许多种编程风格. 用引用操纵对象 每种编程语言都有自己操纵内存中元素的 ...

  9. Java编程思想学习-《第二章 一切都是对象》

    第2章 一切都是对象 尽管Java是基于C++的,但是相比之下,Java是一种更"纯粹"的面向对象程序设计语言.Java语言假设我们只进行面向对象的程序设计.也就是说,在开始用Ja ...

最新文章

  1. 猫猫学IOS(四十)UI之核心动画_抖动效果_CAKeyframeAnimation
  2. cjson 对象是json数组型结构体_cJSON创建并解析json结构体 | 学步园
  3. mysql java datetime_Java向mysql数据库插入datetime类型数据实例(精)
  4. python编程基础是什么-Python面向对象编程基础解析(一)
  5. Python 多进程、多线程启动
  6. boost::signals2模块连接扩展槽的示例程序,使用信号的 connect_extended 和 extended_slot_type
  7. ByteTrack实时多目标跟踪
  8. nhibernate mysql配置_NHibernate各种数据库连接参数文件配置方法说明
  9. 头条 msra几道面试题
  10. 将Capicom调用代码封装到ActiveX——解决javascript调Capicom读取数字证书信息时,IE弹出安全提示的问题...
  11. Java 嵌入 SPL 轻松实现数据分组
  12. java接口 数据_一步步学习java后台(三)(接口返回数据处理)
  13. 图书管理系统实验报告
  14. 什么是数据建模_数据建模是什么意思
  15. python弹出窗口的代码_Python+selenium(7)-弹出窗口的代码封装,PythonSelenium,七,弹窗...
  16. java绘图-常用条形码类型组成及使用说明
  17. 【网络】能远程电脑,但ping不通
  18. bitwise oracle,linq – 与NHibernate和Oracle的Bitwise AND
  19. 微信开发公众号本地调试
  20. C++之友元:是朋友(friend)也是破坏者

热门文章

  1. 20155207王雪纯 《Java程序设计》实验一报告
  2. 使用maven开发javaweb项目
  3. (字符串)字符串中首先出现两次的字符
  4. C语言深度解剖读书笔记(1.关键字的秘密)
  5. 关于某些系统统计查询等业务进行大数据量的测试
  6. 匹配yyyy-mm-dd日期格式的的正则表达式
  7. WCF Data Services服务端处理汇总
  8. 工作10以上老程序员都去哪了?作为新时代的程序员我们该何去何从
  9. 华科开源多目标跟踪(MOT)实时新SOTA:FairMOT
  10. 动手学pytorch之通俗易懂何为卷积-深度AI科普团队