Thinking in Java


作为一个电子专业的人,在学习了将近3年的嵌入式技术后,决定投奔移动互联网,在互联网大潮中急流勇进!

为了学习OOP(Object-oriented Programming),为了转向移动互联网,我决定开始学习android开发,那么就从Java开始吧!

Java的学习资料很多,在研究几天之后,决定从《Java编程思想》这本书开始。

而在这本书之前,我已经看完了一个培训导师的Java4Android的Java教学视频,看的很快,因为我学过C和C++。

但我的Java水平依旧很差,主要在于面向对象的编程方式和编程思想没有完全转换过来,话不多说,开始吧!


1.1  抽象过程

  所以语言都提供抽象机制,如汇编语言是对底层机器的轻微抽象;C语言是对汇编语言的抽象;但它们所做的主要抽象仍是求在解决问题时要基于计算机的结构,而不是基于所要解决的问题的结构来考虑。所以OOP允许根据问题来描述问题,而不是根据运行解决方案的计算机来描述问题。

  纯粹的面向对象程序设计有5个基本特性:

  1)万物皆为对象;

  2)程序是对象的集合,它们通过发送消息来告诉彼此所要做的;

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

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

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


1.2  每一个对象都有一个接口

  UML(Unified Modelling Language,统一建模语言)


1.3  每个对象都提供服务

  将对象看作是服务者有助于提高对象的内聚性。高内聚是软件设计的基本质量要求之一。


1.4  被隐藏的具体实现

  将程序开发人员按照角色分为类创建者和客户端程序员。

  将实现隐藏起来可以减少程序BUG,因此访问控制的第一个存在原因就是让客户端程序员无法触及他们不应该触及的部分,这对客户端程序员来说其实是一项服务。

  控制访问的第二个存在原因就是允许库设计者可以改变类内部的工作方式而不用担心会影响到客户端程序员。


1.5  复用具体实现

  在建立新类时,应该首先考虑组合,因为它更加简单灵活。


1.6  继承

  有两种方法可以使基类与导出类(父类与子类):

  一:直接在导出类(子类)中添加新方法。

  二:改变基类(父类)的方法,称之为复写(voerriding)。


1.7  伴随多态的可互换对象

  把将导出类(子类)看做是它的基类(父类)的过程称为向上转型(upcasting)。

  反之为向下转型。


1.8  单根继承结构

  所有的类都有一个终极的基类(父类),这个基类的名字就是Object。


1.9  容器

  参数化类型,即泛型。这一块貌似比较复杂,我还没看懂太多。。。


1.10  对象的创建和生命期


1.11  异常处理

  try...catch...final


1.12  并发编程

  在多线程编程当中,应当注意的是公用资源的访问,在使用期间应该要被锁定。


1.13  Java与Internet

  Web  

  1)客户、服务器计算技术

  2)Web就是一台巨型服务器

  3)客户端编程

    ①插件

    ②脚本语言

    ③Java

    ④备选方法Java applet

    ⑤.NET和C#

    ⑥Internet和Intranet

  4)服务器端编程


总结:

  目前我还处于从过程型语言编程思想到面向对象型编程思想的转换过程,掌握现有的资源,深入浅出。

  

  


转载于:https://www.cnblogs.com/JackOwen/p/3910186.html

【Java编程思想】一、对象导论相关推荐

  1. Java编程思想之对象入门

    一.Java编程思想之对象入门 前言 1.面向对象程序设计 2.接口的由来----接收请求 3.public,private,protected的由来----实现方案的隐藏 4.成员对象的由来---- ...

  2. Android人生整理第二章:Java编程第一节-对象导论

    抽象过程:建立解空间(问题建模) 和问题空间 (问题存在) 关联 万物皆为对象 程序是对象的集合,通过发送消息来告知彼此要做的 每个对象都有自己的由其他对象构成的存储 所有对象都有类型 某一特定类型的 ...

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

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

  4. Java编程思想学习(一)----对象导论中多态的理解

    1.1抽象过程 1)万物皆对象. 2)程序是对象的集合,他们通过发送消息来告知彼此所要求做的. 3)每个对象都有自己的由其他对象所构成的存储. 4)每个对象都拥有其类型. 5)某一特定类型的所有对象都 ...

  5. 《Java编程思想》学习笔记【一对象导论】

    重头学习Java,大一没怎么学,大二上课也没听.(流下不学无术的眼泪) 所有编程语言都提供抽象机制,我们所能解决的问题的复杂性直接取决于抽象的类型和质量. 汇编语言是对底层机器的轻微抽象," ...

  6. java 四舍五入_《JAVA编程思想》5分钟速成:1-4章:概述

    前言: 1.面向对象的特征有哪些方面? 2.Math.round(11.5) 等于多少? Math.round(-11.5)等于多少? 3.float f=3.4;是否正确? 4.short s1 = ...

  7. Java编程思想 (1~10)

    [注:此博客旨在从<Java编程思想>这本书的目录结构上来检验自己的Java基础知识,只为笔记之用] 第一章 对象导论 1.万物皆对象 2.程序就是对象的集合 3.每个对象都是由其它对象所 ...

  8. 【Java编程思想】

    Java编程思想(一) https://blog.csdn.net/weixin_40841731/article/details/83861285 MikeShine 2019.04.22 20:1 ...

  9. 《JAVA编程思想》学习笔记:第1-4章(Java概述)

    全书目录 Java编程思想(一)第1~4章:概述 Java编程思想(二)第5章:初始化和清理 Java编程思想(三)第6章:访问权限 Java编程思想(四)第7章:复用类 Java编程思想(五)第8章 ...

最新文章

  1. 动态路由选择协议(三)链路状态路由选择协议
  2. 全局样式_CAD新手福利:不懂标注样式修改的请进来一看
  3. gradle ant_区分基于Ant目标的Gradle任务
  4. Spring集合类型依赖查找
  5. Python – GitHub CentOS
  6. 【李宏毅2020 ML/DL】补充:Meta Learning - Gradient Descent as LSTM
  7. 网站访客 简易日志记录
  8. 刘意JavaSE 学习笔记 Day12-Day14——字符串API(String/StringBuffer/StringBuilder...)
  9. android ev3 蓝牙连接,乐高EV3蓝牙安装和连接
  10. navicat 与sqlserver2012连接报错无法连接到服务器
  11. Ubuntu18.04 显卡驱动完美安装(解决安装后无法进入桌面)
  12. 切切实实解决实际问题,方正璞华劳动人事法律自助咨询服务平台在实践中走在前列
  13. ubuntu截图快捷健
  14. python 携程_请教两个关于使用 python 爬去哪儿,携程等机票网站的问题
  15. 构建DCT过完备字典
  16. Python Tkinter——数字拼图游戏详解版
  17. 新版盲盒商城V4.0完整系统源码+亲测可用
  18. 躲避雪糕刺客?通过爬虫爬取雪糕价格
  19. 【SEMrush教程】SEO关键词魔法工具使用技巧
  20. ubuntu下 安装 wine QQ

热门文章

  1. MongoDB快还是MySQL快
  2. 完成一篇机器人领域期刊论文所需要的一些工具
  3. Configuring pre-requisites for the Blockchain Automation Framework
  4. 9.15蚂蚁集团算法岗笔试
  5. 详解智能交通应用大数据“三重门”
  6. 股票连续缩量涨停是好是坏?不懂这个问题,你炒股就炒了个寂寞了!
  7. 自制六足蜘蛛机器人机械结构部分
  8. 2020年武汉Web前端开发前景怎么样?就业薪资如何?
  9. 职场所活动绘图4个常用软件
  10. 实现Macbook Air/安卓手机/苹果手机日历同步