=========== ASP.Net+Android+IOS开发.Net培训、期待与您交流!===========

  面向对象和面向过程都是一种思想,面向过程强调的是功能行为,面向对象是将功能封装进对象,强调具备了功能的对象。面向对象是一种符合人们思考习惯的思想,可以将复杂的事情简单化,将程序员从执行者转换成了指挥者。开发的过程其实就是不断的创建对象,使用对象,指挥对象做事情。设计的过程其实就是在管理和维护对象之间的关系。面向对象的特征:封装(encapsulation)、继承(inheritance)、多态(polymorphism)。

  类就是对现实生活中事物的描述,对象就是这类事物实实在在存在的个体。

  类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。

  类类型的声明形式:

class 类名
{
public:
//公用的数据和成员函数
protected:
//保护的数据和成员函数
private:
//私有的数据和成员函数
}

  面向对象的三个基本特征:

1. 封装(encapsulation)

  用private将不想被外界访问的属性和方法隐藏起来,private私有成员只有在本类中可以使用;封装对于类的开发者而言能够让数据得到保密,得到隐藏,从而更加安全;对于类的使用者而言能够让使用者将精力,全部集中在核心业务逻辑上。

  类的开发应当高内聚低耦合,内聚即独立完成功能的能力,耦合即模块与模块之间的依赖关系,"耦合"无处不在,所有的属性应当使用private修饰, 并且提供两个public的方法 :setters(用于设置属性的)、getters(用于得到属性),所有的方法应当考虑: 一个方法究竟是给外界提供的核心方法还是给核心方法服务的方法,核心方法用public修饰,给核心方法服务的方法应当使用private对外屏蔽。

  *:可以给设置和得到属性一种统一的方式 有助于代码的解耦

  *:可以让程序员重新拿回主动权 让程序员来决定 是否需要用户设置和得到属性

  注意:私有仅仅是封装的一种表现形式!

2. 继承(inheritance)

  用extends关键字建立两个类之间 is a 的关系,提高了代码的复用性,让类与类之间产生了关系,有了这个关系,才有了多态的特性。

  Java当中的类如果没有定义继承谁将直接继承Object类,万事万物皆对象。java只支持单继承,不支持多继承。因为多继承容易带来安全隐患:当多个父类中定义了相同功能,当功能内容不同时,子类对象不确定要运行哪一个。但是java保留这种机制,并用另一种体现形式(接口) 多实现来完成表示。同时java支持多层继承,也就是一个继承体系;使用继承体系时,先查阅体系父类的描述,因为父类中定义的是该体系中共性功能。通过了解共性功能,就可以知道该体系的基本功能,那么这个体系已经可以基本使用了。在具体调用时,要创建最子类的对象,因为有可能父类不能创建对象,同时创建子类对象可以使用更多的功能,包括基本的也包括特有的。简单一句话:查阅父类功能,创建子类对象使用功能。

  编程时涉及到代码重用,应当考虑继承实现,但同时千万不要仅仅为了获取其他类的功能,简化代码而继承,必须是类与类之间有所属关系才可以继承,所属关系 is a。

  私有属性有没有继承?能不能继承? 算不算继承?私有属性在子类的存储空间当中它是切实存在的,是由于Java当中创建对象的流程所决定的,但是不能继续使用了,因此不能算作继承得到的。

3. 多态(polymorphism)

  多态可以理解为事物存在的多种形态,多态在程序中的体现有父类的引用指向自己的子类对象、父类的引用接收自己的子类对象。多态的前提必须是类与类之间有关系,要么继承,要么实现。多态的出现大大的提高程序的扩展性,能够让先开发完成的类型在不做任何修改的情况下跟之后开发出来的新类型结合起来使,而不用做任何修改,但是只能使用父类的引用访问父类中的成员。

  多态中成员的特点:在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有编译失败。在运行时期:参阅对象所属的类中是否有调用的方法。简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。多态中成员变量的特点:无论编译和运行,都参考左边(引用型变量所属的类)。多态中静态成员函数的特点:无论编译和运行,都参考做左边。

-----------☆-----------ASP.Net+Android+IOS开发.Net培训、期待与您交流! -----------☆-----------

详细请查看: http://edu.csdn.net

黑马程序员:Java编程_面向对象的更多相关文章

  1. 【黑马18期Java毕业生】黑马程序员Java全套资料+视频+工具

        Java学习路线图引言:        黑马程序员:深知广大爱好Java的人学习是多么困难,没视频没资源,上网花钱还老被骗. 为此我们历时一个月整理这套Java学习路线图,不管你是不懂电脑的小 ...

  2. 黑马程序员——JAVA基础之简述面向对象,类,变量,匿名对象

    ------- android培训.java培训.期待与您交流! ---------- 面向对象: 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程 强调的是功能行为 面向对象 将 ...

  3. [刘阳Java]_程序员Java编程进阶的5个注意点,别编程两三年还是增删改查

    此文章也是关注网上好几篇技术文章后,今天分享出来.因为,总有在程序学习路上的小伙伴会感到迷茫.而迷茫存在的情况如下 第一种:在大学学习中出现的迷茫,不知道Java到底要学什么.学习Java的标准是什么 ...

  4. 黑马程序员Java基础班+就业班课程笔记全发布(持续更新)

    正在黑马学习,整理了一些课程知识点和比较重要的内容分享给大家,也是给自己拓宽一些视野,仅供大家交流学习,大家有什么更好的内容可以发给我 ,现有黑马教程2000G  QQ 1481135711 这是我总 ...

  5. 黑马程序员——JAVA基础之语法、命名规则

    ------- android培训.java培训.期待与您交流! ---------- 1.java语言组成:关键字,标识符,注释,常量和变量,运算符,语句,函数,数组. 2.java关键字:被Jav ...

  6. 黑马程序员----java基础笔记中(毕向东)

    <p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...

  7. 黑马程序员——JAVA基础之泛型和通配符

    ------- android培训.java培训.期待与您交流! ---------- 泛型:            JDK1.5版本以后出现新特性.用于解决安全问题,是一个类型安全机制. 泛型好处: ...

  8. 黑马程序员----java基础:异常

    dff ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 经常写程序的人对try...catch...finally语句肯定是不陌生的了.但是好多 ...

  9. 黑马程序员——JAVA基础之网络编程

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 网络编程 网络模型:OSI参考模型和TCP/IP参考模型 网络通讯三要素: IP地址:InetA ...

随机推荐

  1. .Net最佳实践3:使用性能计数器收集性能数据

    本文值得阅读吗? 本文讨论我们如何使用性能计数器从应用程序收集数据.我们将先了解的基本知识,然后我们将看到一个简单的示例,我们将从中收集一些性能数据. 介绍: - 我的应用程序的性能是最好的,像火箭 ...

  2. SQL疑难杂症【5 】大量数据查询的时候要考虑结果为空的情况

    最近几天怪事儿出奇的多,同一个工单.同一个产品,在A线可以正常生产,但是在H线死活都无法生产,系统直接提示TimeOut,监控发现有一条SQL语句执行缓慢,Copy出来仔细查看,很简单的一条语句,如下 ...

  3. HTTP笔记之一

    1  URL 统一资源定位符(URL)是资源标识符最常见的格式.大部分的URL都遵循一种标准格式,这种格式包含三个部分. URL的第一部分:方案(scheme),说明了访问资源所使用的协议类型.通常是 ...

  4. Scrum Meeting 8-20151210

    任务安排 姓名 今日任务 明日任务 困难 董元财 服务器入口更新 服务器发布记录接口 无 胡亚坤 请假(编译攻坚) 聊天界面优化 无 刘猛 请假(编译攻坚) 开新的分支存放服务器端或者,创建的仓库记录 ...

  5. (六)文件操作的主要接口API

    1.什么是操作系统API (1)API是一些函数,这些函数是由linux系统提供支持的,由应用层程序来使用. (2)应用层程序通过调用API来调用操作系统中的各种功能,来干活. (3)学习一个操作系统 ...

  6. Android复习指南

    基础无外乎几部分:语言(C/C++或java),操作系统,TCP/IP,数据结构与算法,再加上你所熟悉的领域.这里面其实有很多东西,各大面试宝典都有列举. 在这只列举了Android客户端所需要的和我 ...

  7. ASP.NET MVC电子书下载

    欢迎点击图片下载电子书,进行深入的研究.                (  ,)      

  8. NGUI Scroll List

    NGUI Scroll List 1.Add GameObject with Script UI Panel(NGUI -> UI -> NGUI Panel) and Script UI ...

  9. python中lambda表达式应用

    对于简单的函数,也存在一种简便的表示方式,即:lambda表达式 #普通函数1 def func(a): return a+1 print 'test1_func0:',func(1000)4#lam ...

  10. 樱花漫地集于我心,蝶舞纷飞祈愿相随---总结 浮动:flux 浮动:flux

    知识点 数据类型,运算符与表达式: 程序结构:顺序,选择,循环 问题 各种结构,单词意思 心得体会 抄程序是最笨的方法但我认为它是进步最快的方法,抄程序是积累经验的时候,而做项目才是真正把所学为所用的 ...