Thinking‘ in java 个人笔记 第一章(持续更新ing)

 从这个星期开始呢,《Thinking in java》个人笔记诞生了,这个更新的频率呢,是要根据具体情况来的了,毕竟只是一只“上班狗”嘛...那好,废话不多说,直接上正文。
   1.Java 是一种面向对象的程序设计语言(Object-oriented Programming ,简称OOP),面向对象的思想实质:程序可以通过添加新类型的对象使自身适用于某个待定的问题,个人理解,就是声明自己的类来通过调用相关接口来实现某些功能。
    2.面向对象的五个基本特性:(1)万物皆对象
                                                       (2)程序是对象的集合,它们是通过发送消息来告知比譬所要做的
                                                       (3)每个对象都有自己的由其他对象所构成的存储(这个稍微解释一下,就是在自己声明的类中也 可以声明其他类的引用,也就是new啦)
                                                       (4)每个对象都拥有其类型
                                                       (5)某一特定类型的所有对象都可以接收同样的消息(这个应该是对于Java中的继承来说的,换句话说,圆形是一种几何形,正方形也是一种几何形,几何形有面积的计算公式,那么圆形和正方形也会有相应的面积计算公式)
   3.每个对象都有一个接口,创建抽象数据类型(类)是面向对象程序设计的基本概念之一,而且,每个对象都只能满足某些请求,这些请求由对象的接口(interface)来定义,决定接口的便是类型(打个比方,将灯泡抽象为一个类,那么灯泡有亮和灭两种动作,但是你不能让灯泡去做盛饭的碗的事吧,因为碗这个类没有亮和灭的动作啊,个人粗俗理解)
 4.UML(Unified Modelling Language)统一建模语言,这个以后做文档的时候,需要画的类图,最上层是类名,中间是任何你关心的数据成员,在这之下,是隶属于这个类的接口(方法)
  5.每个对象都提供服务,将对象看作成服务提供者有一个附带的好处,就是有助于提高对象的内聚性,并且高内聚是软件设计的基本质量要求之一,其实最大的好处在于分工明确,一目了然。
 6.被隐藏的具体实现,首先这一点是关于软件安全性的而且牵扯到访问控制符,这么说吧,为什么我们要使用访问控制符呢,因为我们不想让某一些方法啊,变量啊暴露出来,最根本原因是担心其他人对程序造成的影响,因此隐藏起来可以减少Bug(对自身是必须的,对其他调用者是不必的),访问控制符:public,private,protected,default四种,public表示紧随其后的元素对任何人都是可用的,而private表示除类型创建者和类型的内部方法之外的任何人都不能访问该元素,而protected与private相当,差别在于继承的类可以访问protected成员。
7.继承,如果我们以现有的类为基础,复制它,然后通过修改,添加这个副本来创建新类那就要好多了,那么通过继承就可以达到这种效果,当继承了现有的类型(父类)时,这个新的类型(子类)不仅包括父类的所有成员(private成员被隐藏且不可访问),而且还复制了父类的所有接口,也就是说,发送给父类对象的信息同时也会被发送给子类对象,这一点很重要。现在有两种方式可以让父类与子类产生差异,第一种是在子类中添加新的方法,而父类中没有该方法,第二种成为覆盖,也就是方法名称相同,但是其方法体不同(也就是具体实现不同),前者给人的感觉是“像是一个”而后者则感觉是“是一个”。
8.后期绑定概念,当向对象发送消息时,被调用的代码直到运行时才能确定,java使用一小段特殊的代码来代替绝对地址调用,根据这一小段的特殊代码,每一个对象都可以具有不同的行为表现,当向一个对象发送消息时,该对象能够知道对这条消息应该做些什么,这就是多态。
 9.向上转型,将子类看作是它的父类,这就是向上转型,这是安全的,根据第八条来理解哦~
10.对象的创建和生命期,每个对象为了生存都需要资源,尤其是内存,当我们不需要一个对象时,它就必须被清理掉,使其占有的资源可以被释放,第一种创建对象的方式,是将对象置于堆栈,有时称为自动变量或者局域变量或者静态存储区来实现,这种方式将存储空间分配与释放放置于优先考虑的位置,但同时也牺牲了灵活性;第二种是在堆的内存池中动态的创建对象,直到运行的时候才知道需要多少对象,因为存储空间是在运行时被动态管理的,所以需要大量的时间在堆中分配存储空间,这可能远远大于在堆栈中创建存储空间的时间。而java完全采用了动态内存分配方式,每当想要创建新的对象时,就使用new关键字来构建对象的动态实例。因为在堆上创建对象,编译器就会对对象的生命周期完全不知,所以java提供了一种“GC”也就是垃圾回收机制,它可以自动发现对象何时不再被使用,并继而销毁它。
以上就是我对第一章的小小笔记,我也是一名初学者,希望能跟大家一起努力,若有不严谨的地方还望指出哦~谢谢~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值