think in java day01

2016年6月2日20:21:15

---------------------------------------------------------------------------------------

概念:

抽象的进步

-->  所有的编程语言的最终目的都是提供一种“抽象”方法,一种较有争议的说法是,解决问题的复杂程序直接取决抽象的种类和质量

汇编语言是机器语言的少量抽象,后来命令式的语言是对汇编语言的抽象,但是他们的抽象原理着种考虑计算机的结构,而非考虑问题本身的结构,

--> 为机器建模的另外一个方法就是为解决的问题制作建模,面向对象程序设计中,程序员将问题空间中出现的元素叫做对象(Object)

对象的入门

1.面向对象的设计方法:

1.1 一切皆对象

1.2 程序就是一大堆对象的集合

1.3 每个对象都有自己的存储空间

1.4 每个对象都有类型

1.5 同一类所有的对象都能接收相同的消息

2. 对象的类型

将多个对象的共有特性和行为,总结抽取成一个新的类型,这些对象就是这个类型的特殊实现。

一个类,可根据情况生成许多对象,可将这些对象作为要解决的问题处理。

在程序设计的时候,面临最大的挑战就是如何在“问题空间”(问题时间存在的地方)的元素与“方案空间”(对实际问题进行建模的地方,如计算机)的元素之间建立理 想的“一对一关系”。

在面向对象程序设计中,让对象去完成一项工作的定义是在对象里面定义函数,通过new class ,新建一个对象,再使用“.”来调用对象的函数,向对象发号消息,

执行工作。

3. 实现方案的隐藏

原因:

3.1 防止程序设计员接触到他们不该接触的东西,通常是一种内部的数据设计思想

3.2 方便库设计人员对内部结构修改,而不影响它对程序设计员的使用

java提供了三个显式关键字和一个隐式关键字来控制成员的访问权限

1.public

公共的,所有人都可以访问

2.protect

受保护的,同包类,或者不在同一个包下的子类都可以访问

3.隐式的

默认的,只允许同一个包下的类访问

4.private

私有的,本类下的成员才可以调用

3.面向对象的特性

3.1 封装

代码的重复利用的最好的方法就是直接使用这个类的对象,新类可由其他的任意数量和类型的对象构成,

对象的成员一般设置为私有,这样程序设计人员就不能轻易地访问成员,这样一来,库设计人员可以从容的修改成员变量,而不影响客户端的程序,

也可以在运行期修改成员,这样的灵活性是继承不能达到的。

3.2 继承

在实际对象建模过程中,一个新的类型和 旧的类型实际实现大致相同,那么我们就不用去重新去创建一个新的类型,使用继承,能够很好地解决这个问题。

java中使用关键字 extends来实现

继承时,相当创建了一个新类,这个新类不仅包含了父类的所有成员,更重要的是,它复制了父类的接口,也就是说父类的所有行为,子类都支持。

当然,这个新的类型并不只是简单的继承父类的行为和行为,这个类的还具有其他的特殊方法,进行这种处理的时候,一般是意识到父类不能满足我们要求,

所以必须添加更多的函数。

尽管拓展新的功能,能够区分新类,但是还有第二种方法,那就是改变基础类现有的函数的行为,我们将其称为改善那个函数,也就是重写(OveRider)

3.3 多态

继承对造成一系列的类,所有的类都建立在同一个接口上。

那么这个时候,我们可以把子类的对象当作父类的一个对象来看待。

将一个子类的对象执行一个父类的引用。

这就是多态,多态在程序的拓展方面,可以减少了对方法重载。

编译器和运行期系统进行了主要细节的控制,在程序没有给出提示,或者指示的时候,不同的对对象都能正确的执行工作,这就是动态绑定。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值