努力的小胖的学习记录

学习java已经快三年,一直都没有计划性的学习,这次决定计划性的学习,志在记录

本次学习主要以think in java为路线,记录一些自己觉得比较重要或者以前忽视的东西,下面开始介绍这次学习的内容

** 第1章:对象的基本概念**
1.面向对向和面向过程
面向过程:以”事件”为中心的编程思想。分析出解决”问题”的步骤,然后用函数把这个事件实现,然后按顺序调用。
面向对象:以”对象”为中心的编程思想。把实际构成”问题”的元素分解成对象,按照现实解决的问题的逻辑将对象组合起来(注意:对象的存在不是为了解决问题,而是为了描述问题和以后的扩展)
2.面向过程语言的五大基本特性
1.万物皆对象:这一点虽然理解起来很简单,就是用元素和方法描述对象的属性和行为。但是这一部分却是最难的,因为你的对象分离的越好,对以后的代码维护和修改就越简单,这是需要经验才能完成的。比如一瓶香水,喷香水的行为到底是属于人还是香水呢?
2.程序是对象的集合,它是通过发送消息来告知彼此要做的:程序其实可以理解为我们生活的世界,而对象就是万物,这一点并不难理解。而后面一句怎么理解 呢,还是上面那个问题,喷香水的行为到底属于谁呢?正常来说,肯定是我们按压香水喷头(这实际是一个指令/消息),香水喷出。所以喷香水的行为是属于香水的,而人只是一个调度者(发送信息的对象)
3.每个对象都有自己的由其他对象所构成的存储:还是上面的例子,香水是有香水瓶子,液体香水组成的,这是时候香水可以是一个对象,瓶子和液体香水也可以分别是个对象。
4.每个对象都有其类型:类型就是对象的一个类型,如香水就是一个类型(即class),而一个类型又有很多实例(instance),比如我有三瓶香水,每瓶香水就是一个实例,所以类型只会有一个,但实例可以有多个。
5.某一特定类型的所有对象都可以接受同样的消息:还是以香水为例,假设认为香水是可以喷的,那应该所有的香水实例都应该遵从这个原则。
3.访问控制符

  • 1.访问控制符的类型

Public:所有可以访问
Protected:子类,同一包内可以访问
Default:同一包内可以访问
Private:同一类内可以访问(包括内部类)

  • 2.访问控制符存在的意义

让客户端程序员无法触及到他们不应该触及到的。
允许类创建者可以改变类内部的工作方式而不用担心会影响到客户端程序员
*程序员可分两类:类创建者(创建数据类型的程序员,可以理解为架构师)和客户端程序员(使用现有类完成需求,普通开发人员)
4.如何实现复用
1.访问控制符的类型
1.Public:所有可以访问
2.Protected:子类,同一包内可以访问
3.Default:同一包内可以访问
4.Private:同一类内可以访问(包括内部类)
2.访问控制符存在的意义
1.让客户端程序员无法触及到他们不应该触及到的。
2.允许类创建者可以改变类内部的工作方式而不用担心会影响到客户端程序员
*程序员可分两类:类创建者(创建数据类型的程序员,可以理解为架构师)和客户端程序员(使用现有类完成需求)
如何实现复用

  • 1.组合(has-a)

使用现用对象A创建新的对象B,即A对象作为B的成员变量,将一些事件处理委托给A,以此达到代码复用

  • 2.继承(is-a/is-like-a)

类B继承类A,由于类B继承类A,类B可以拥有的类A的一些属性和行为(只要在访问范围内),这也就导致类B有了类A的一些功能,达到代码复用。
*继承是java多态的一个基础,java不像c++那样前期绑定/编译期绑定,而是后期绑定/动态绑定/运行期绑定。==

  • 3.使用(use-a)

原理和组合类似,只不过是把类A作为方法的参数传进来,事件的处理依然委托给类A,以此达到代码复用的目的。
*针对以上三点代码复用的方式:本人推荐类组合和使用(原因:1.运行时可以动态修改2.继承可能会会单继承产生冲突)

参考文献:《think in java》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值