`
狂奔蜗牛
  • 浏览: 19756 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Think in Java 2 理解笔记 第一章 对象导论

    博客分类:
  • J2SE
阅读更多
think in java 哈哈,开始读了。前言跳过,让作者去BS吧!第一章看下来什么收获都没有看不懂!各位大牛多多帮助

抽象化的过程
1.万事物皆对象。 从何说起呢。我就当着人是一个对象 对象属性:手,脚,头,头发,眼睛,耳朵等,对象方法:吃饭,喝水,上班,拿工资,坐车,ML等。
2.程序便是成堆的对象,彼此能过消息的传递,请求其对象进行工作。当关一个公司吧,项目经理对一个小弟:“小张”(发出消息) ,小张收到:在,你有什么事吗?经理说:去帮我倒杯茶来。小张收到就行动了!
3.每个对象都拥有由其它对象所构成记忆。不太理解,像人与黑猩猩与其动物。所有的部分相同之处吗?
4.每个对象皆有其型别(type)。Class 如人(至少男人和女人应该为两个不同的类吗?我想男女是一个属性吧)
5.同一型别的所有对象接受的消息皆相同。这个人不能用了。用同类电脑吧,接收的命令都一样,死东东。 没有一定的规定他们怎么看得懂呢?

每个对象都是接口
人 Class --data type 记录一个人要数据表示吧,但人 说话,吃饭,穿衣服,睡觉。这等等的行为,要用一个东东来定,--接口,但它又不知道你穿什么衣服,只知道你要穿衣。所有就定人的规定行为。 人是对象。所以其它的也对象其它对象也类似

被隐藏的实现的细节
这就是隐私了,玩游戏不能让老爸老妈知道可以让同学,兄弟知道。当然还有一些绝地的个人空间保密,对象也是一样,public 全公开,private 本对象绝对保密 protected 友好。带血缘关系。<不写默认default> 同包package,即邻居之类吧!

重复运用实现码
要造车子,宝马,和 丰田 都要轮子,先做了一个丰田轮子的模型,开始生产。宝马拿来模型改改不就可以了

继承:重复运用接口
继承可以运用到超类(父类/基类)的接口(方法)。

是一个(is-a)vs 像是一个(is-like-a)
is-a base class(基类)和子类之间接口一致,is-like-a 子类比父类新生多出来的属性和接口

随多态而生的互换对象
non-OOP编译器所产生的函数调用(认为是编译器存了,代码段的编译绝对地址)--前期绑定
OOP中,是当给对象发出消息即调用时,才会知道动态的调用那段代码,不加关键字,JAVA默认是后期绑定。至于继承子类重再向上转型,向下转型,这东东还要慢慢体会,这就是多态,后期绑定。

抽象基类与接口
抽象基类ab--经理,一般的事都不干,只是规定做某事必须按他的方法去做,但关于钱的一此大事嘛,自己动手了,至于你理不理解,想不想重干就不管了。
接口--老总 只要你在他公司干,他的规定你就得会部按着做。(好像做个接口,嘿嘿)

对象的形貌与寿命
对象的生成(created)和毁灭(destroyed)
对象如果存在stack(栈)中,或静态常量区,程序倒还知道它存在的时间。但如象对象在heap(堆)中,因为是在程序运行时才知道对象的状态,所以不知道它要存在多久。JAVA对象就是存在堆中,产生对象,用NEW 关键字,干掉对象。那只有GC(拉圾回收器) 去干了。

群集和迭代器
群集(collection)又叫容器(container)如:vector ArryList linkedList sets等。。。
迭代器(iterator) 就是对容器的遍历等一些“通用”操作,老方式用Enumeration枚举

单根继承体系
C++多根继承,有多个base class 这个关系太复杂了。有多个爸爸和妈妈,多惨
JAVA单根继承,一个class 只有一个base class 多个孩子就是一对爸妈生的。(小心注意计划生育)

群集类军及其易用性支持
所有Class 都继承Object 如果extends 关键字,貌似统系自动实现了,子类向父类转型可能会丢掉属性,父类转子类,不安全。(程序员有可能上下转型不是同一个子类)

管家面临的两难:谁该负责清理?
谁来打扫家里的卫生呢?如果让主人自己做的话,不可人忘记做,家里就成垃圾队了。
请过人来做吧。。问题是要给钱呀。它包了你的卫生,但又不知道他什么时候打扫。
C++就是自己动手了,程序员自己清理,JAVA 是如GC来清理。但同时也会带来速率问题,好像判断引用是否为空?因为他们有继承,在heap还要一个个去找一个个去判断。

异常处理:面对错误的发生
异常:就是程序在编译或运行出现的BUG
如果你在写代码时发现那段代码可能出现什么BUG你得做出一定方式来处理,或者把这个问题丢给下面的人来说,但你一定要告诉它。一个大项目,会出现各种各样的BUG,所以一个好的异常处理很重要。

多线程
看过动画片吗?当然。不就是一张张图片切换嘛!是的。当计算机只有一个CUP时。你又想同进让他干我个事件。我想听歌,我想看博客== 一个CPU要听那个的呀。它也没办法罗,把你们的命令分面很小一块。一个命令执行一"瞬间",我们人一般感觉不出来的。这样就把我们给忽悠了。感性认识它一下同时处理两个东西。不过这里是有执行级的。呵呵。和OOP不是一个概念!

持久性
就是不让你快速消失。程序运行在内存里。程序结束了那些数据就没了。我想存下来怎么办。以文件或数据库存到磁盘上去吧。

结束:只理解这么一点了。
0
0
分享到:
评论
1 楼 Vikiyung 2010-08-02  
讲得通俗易懂,很不错哈。。

但抽象基类与接口
这里还不是很清楚,能再讲得详细点么?

相关推荐

    Think in java学习笔记

    ### Think in Java 学习笔记知识点总结 #### 第1章:对象导论 - **一切皆为对象**:Java 中的几乎所有事物都是对象,对象通过发送消息的方式进行交互。 - **对象模型**:每个对象都有自己的存储空间,该空间由其他...

    PhD_Thesis_Cristina_Pinneri.pdf

    PhD_Thesis_Cristina_Pinneri

    Git知识学习(尚硅谷)

    Git知识学习(尚硅谷)

    套筒机械加工工艺规程制订设计.rar

    套筒机械加工工艺规程制订设计.rar

    The First Adventures on Differential Geometry 9789811296178.pdf

    The First Adventures on Differential Geometry 9789811296178

    汽车防误踏油门机构的设计.zip

    汽车防误踏油门机构的设计.zip

    汽车离合器设计.zip

    汽车离合器设计.zip

    基于SpringBoot的文学创作社交论坛(源码+数据库+万字文档+ppt)533

    基于SpringBoot的文学创作社交论坛,系统包含两种角色:管理员、用户主要功能如下。 【用户功能】 1. **首页:** 浏览社交论坛的主要信息。 2. **火车信息:** 阅读和浏览用户发布的文学创作。 3. **公告资讯:** 查看社交论坛发布的重要通知和公告。 4. **后台管理:** - **首页:** 进行后台管理相关操作。 - **个人中心:** 管理个人信息,查看火车票订购历史等。 - **车票预订管理:** 预订文学创作,选择特定的创作者或主题。 - **车票退票管理:** 处理用户对已预订文学创作的退票请求。 5. **个人中心:** 管理个人信息。 【管理员功能】 1. **首页:** 查看社交论坛整体概况。 2. **个人中心:** 修改密码、管理个人信息。 3. **用户管理:** 审核和管理注册用户的信息。 4. **火车类型管理:** 管理文学创作的分类信息。 5. **火车信息管理:** 监管和管理社交论坛上的文学创作信息。 6. **车票预订管理:** 查看和管理用户的文学创作预订情况。 7. **车票退票管理:** 处理用户对已预订文学创作的退票请求。 8. **系统管理:** - **公告资讯:** 发布、编辑和删除系统的通知和公告。 - **关于我们:** 编辑和更新社交论坛的介绍。 - **系统简介:** 提供社交论坛的简要介绍。 - **轮播图管理:** 管理社交论坛首页的轮播图。 二、项目技术 编程语言:Java 数据库:MySQL 项目管理工具:Maven 前端技术:Vue 后端技术:SpringBoot 三、运行环境 操作系统:Windows、macOS都可以 JDK版本:JDK1.8以上都可以 开发工具:IDEA、Ecplise、Myecplise都可以 数据库

    数控铣床主轴箱设计.zip

    数控铣床主轴箱设计.zip

    某电镀废水工艺流程及平面布置图.zip

    某电镀废水工艺流程及平面布置图.zip

    joblib-0.9.0b4-py2.7.egg

    该资源为joblib-0.9.0b4-py2.7.egg,欢迎下载使用哦!

    价值60元的带会员和后台版的域名防红1.19最新免授权开心版

    管理会员制度渠道,掌管多种服务,黑白名单管理邮箱配置生成提醒发送对接易支付进行交易,订单列表,带有各种短网址功能提供接口对接,实现短网址+防红两不误,可自定义多中转域名,自动识别安全网址各种防红数据后台可显,自定义跳转网站 用户端android-ios 会员制度享受,自定义跳转网站,在线充值,我的生成,在线生成,为你的网址提供保护短网址列表接口文档数据显示,编辑我的生成 防红效果全网 在短网址与防红的前提下,为你的网站提供SEO服务以及腾讯相关网站检测的优化 贴吧+短视频平台+ios+android+pc皆正常 安装:上传源码,访问安装。提示授权时,随意填写 6位数字即可

    joblib-0.9.0b3.tar.gz

    该资源为joblib-0.9.0b3.tar.gz,欢迎下载使用哦!

    实时操作系统毕业设计项目内含说明书.zip

    实时操作系统毕业设计项目内含说明书.zip

    python相关学习资源,python

    python

    塑料瓶自动封口机设计.rar

    塑料瓶自动封口机设计.rar

    CarPlay 系统功能介绍,比较专业的文档,告诉我们开发Carplay的时候需要遵循的规则

    内容概要:本文介绍了苹果公司在WWDC19上发布的CarPlay系统的最新进展,主要包括四个方面的改进:不规则形状显示屏支持、多屏显示支持、动态屏幕尺寸调整以及“嘿,Siri”语音助手集成。不规则形状显示屏支持允许开发者为CarPlay定义交互区域,确保内容适应各种非矩形屏幕。多屏显示支持使车辆可以在多个屏幕上同时展示CarPlay界面,如中心控制台和仪表盘,提供导航、音乐播放等不同内容,并支持独立的夜间模式。动态屏幕尺寸调整功能让CarPlay界面可以实时调整大小,以适应不同的驾驶环境或用户需求。最后,“嘿,Siri”功能让用户可以通过语音唤醒Siri,即使在播放音乐时也能无缝交互,系统内置了持续的回声消除和降噪处理,确保语音识别的准确性。; 适合人群:汽车制造商、软件开发者以及对车载信息系统感兴趣的科技爱好者。; 使用场景及目标:①汽车制造商可以根据新的CarPlay特性优化车内娱乐和导航系统的用户体验;②开发者可以利用这些新特性创建更加丰富的车载应用程序;③科技爱好者可以了解最新的车载技术发展趋势。; 其他说明:文档详细描述了CarPlay系统的技术细节,包括语音活动检测器、关键词检测器、回声消除和降噪等功能的工作原理,以及车辆系统的要求,如始终开启的麦克风输入流处理、连续回声消除和降噪等。更多相关信息可参考苹果开发者网站。

    蓝桥杯第十六届省赛真题!

    内容概要:本文档为第十六届蓝桥杯单片机设计与开发项目省赛的程序设计试题说明,面向大学组。文档详细规定了比赛的基本要求、硬件配置、功能描述、性能要求、输出控制、显示功能、按键功能及初始状态。参赛者需要使用指定的单片机竞赛实训平台,完成环境温度、光强、物体运动状态的检测,并通过数码管、LED指示灯、继电器等实现相应的数据显示、状态指示与控制功能。所有程序需在Keil环境下开发,并按要求提交工程文件。 适合人群:具有单片机编程基础的大专院校学生或相关专业技术人员。 使用场景及目标:①掌握单片机编程技能,熟悉传感器数据采集与处理;②学会通过数码管、LED、继电器等实现人机交互界面的设计与实现;③提高对硬件资源的有效利用能力,确保系统的实时性和稳定性。 阅读建议:此资源旨在帮助参赛者理解比赛规则和技术要求,建议仔细阅读各项功能的具体实现细节,特别注意硬件配置、性能指标以及提交规范的要求。同时,在实际操作中要严格按照文档中的规定进行开发和测试,确保作品符合评分标准。

    液压剪式升降平台(step SolidWorks)设计.rar

    液压剪式升降平台(step SolidWorks)设计.rar

    基于Python开发的一款简单易用的IT管理软件.zip

    基于Python开发的一款简单易用的IT管理软件.zip

Global site tag (gtag.js) - Google Analytics