第一章-对象入门

对象入门


1.1抽象的进步

面向机器的进步到面向问题

  • 每个对象都有自己的存储空间,可容纳其他对象
  • 每个对象都有一个类型:每个对象都是某一个类的实例
  • 同一类所有对象都能接收相同的信息

1.2对象的接口

也就是对象的句柄,可以对对象进行的操作

1.3实现方案的隐藏

Interface:只定义可以发出哪些请求,但在某些地方存在着代码满足这些请求:隐藏的实现

  • 这样做有两个好处
    • 安全性:防止程序员接触他们不该接触的东西
    • 可修改:后续对代码进行修改,由于接口和实现方法隔离开来,只要用户重新链接一下就可以,不必担心出问题

关键字

  • public
    • 后续的定义任何人均可以使用
  • private
    • 意味着除了自己,类型的创建者,以及类型的内部函数成员,其他任何人都不能访问
  • protected
    • 继承的类可访问受保护的成员,但不能访问私有成员
  • friendly
    • 意味着只能在包的范围内使用

1.4 方案的重复使用

创建一个成员对象:将一个类的对象置入一个新类中

eg:比如有一个Class灯泡,现在想创建一个Class房子:那么就在Class中新建一个灯泡的对象

成员对象:一般设置为private

多在新建类的时候组织对象,而是继承,一旦想到用继承就要想到这一点

1.5 继承

继承通过extends关键字来实现

相当于创建了一个新类,集成了现有类型的所有成员(包括private,虽然不能被访问)

而后为了将衍生类和基础类区分开

  • 为衍生类添加新的函数
  • 改变基础类一个现有函数的行为

基础类位于顶部,衍生类在下方展开:上溯造型(Upcasting)

void doStuff(Shape s){
s.erase();
s.draw()
}

Circle c = new Circle();
Triangle t = new Triangle();

doStuff©;
doStuff(t);

doStuff()会自动良好地工作

1.6 动态绑定

在draw()消息发给一个匿名shape的时候,根据shape句柄当时链接的实际类型,而采取正确的动作。(画圆就是画圆,画三角形就是画三角形)

多形性:不知道对方的具体类型是什么,但仍然能够采取正确的动作。

有时候我们不希望有任何人创建基础类的对象

使用abstract:把这个类变成抽象的。

也可创建抽象方法:尚未实现,继承这个类的衍生类必须实现它

1.7 对象的创建和存在时间

  • Java Stack

    • 一块用于存放临时变量的地方
    • 比Java heap(内存堆)要小
    • 其中变量在进入函数运行到它的时候创建,在函数结束后释放
  • Java Heap

    • 对象存放的地方
    • 程序运行时创建
    • 当其满了的时候(很容易),内存回收机制就会发生作用
    • 访问这里的内容比访问栈慢

1.7.2 Java是一个单根结构

1.7.3 集合库与方便使用集合

单根结构:所有都继承自Object类

1.8 违例控制

  • 违例(EXception)是一个特殊的对象
  1. 会从产生错误的地方抛出来
  2. 有一个违例控制器会进行捕捉并进行处理

1.9 多线程

C/S模型

刚开始的服务器-浏览器模型只能够处理一些静态页面,这样增加了带宽的负担,并且响应时间长(为什么p41)

而后,出现了插件,将其插入到HTML的某一个位置的代码,这样就可以进行一些编程

出现了JavaScript,它与Java没有任何关系

还有Java的Applet(程序片),解决客户端编程问题,作为 Web 页的一部分,程序片代码会自动下载回来(这和网页中的图片差不多)。激活程序片后,它会执行一个程序

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值