面向对象理解

1.面向对象思想**重点内容** ![这里写图片描述](https://img-blog.csdn.net/20180103163016679?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzgxMTI3MDM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 2.面向对象结构 ![这里写图片描述](https://img-blog.csdn.net/20180103163123898?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzgxMTI3MDM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 3.面向对象流程 ![这里写图片描述](https://img-blog.csdn.net/20180103163206043?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzgxMTI3MDM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 一些知识点: 1.OO和过程式程序设计的区别:在OO设计中,属性和行为都包含在一个对象中(称为封装),而在过程式程序设计(结构化设计)中,属性和行为是分开的。 2.在OO设计术语中,数据称为属性,行为称为方法。 3.获取方法和设置方法提供了对对象的数据的一种受控访问,获取方法和设置方法有时分别称为访问方法和修改方法。 4.类是对象的模板。当创建一个对象时,称为对象被实例化。必须在创建对象前先设计类。 5.类的数据由属性表示。每个类必须定义属性来存储由这个类实例化的各个对象的状态。 6.要实现数据隐藏,所有属性都应当声明为private。在大多数OO语言中,接口中的方法都指定为public。 7.超类(或父类或基类)包含继承自该类的所有子类(或派生类)共同的属性和行为。 8.在大多数OO语言中,一个类只能有一个父类——单重继承。有些语言(如C++)则允许一个类有多个父类——多重继承。 9.初始化顺序:①对象的初始化顺序:先静态成员,再非静态成员,再构造方法;②继承中构造方法的调用顺序: 先父类,再子类。 10.如果一个子类从超类继承了一个抽象方法,它就必须为这个方法提供具体实现。 11.a.构造函数(constructor)指一个与其所在类同名的方法,且该方法没有提供任何返回类型。构造函数是类的入口点,对象由此构建。构造函数非常适合完成初始化。new关键字用于类的实例化并分配所需的内存。 Cabbies myCabbie = new Cabbie(); b.初始化是构造函数完成的一个常见功能。如果没有为Cabbie类提供一个构造函数,就会自动插入以下默认构造函数 public Cabbie() { super(); } c.如果类中有属性,好的实践往往是在构造函数中初始化这些属性。 d. 使用多个构造函数(重载方法):利用函数不同的签名。签名 =方法名 + 参数列表 public String getRecord(int key) e. 超类如何构造:①调用该类超类的构造函数;②初始化对象的各个类属性;③执行构造函数中的其余代码 12.实现细节对用户是隐藏的。实现的任何部分可以改变而不影响类的用户接口。接口包含调用一个方法以及返回一个值的语法。如果这个接口没有改变,用户就不关心实现是否发生了改变。 13.对象持久性(object persistence)指保存对象的状态,从而可以在以后恢复并使用。方案①,将对象保存到平面文件(使用专有的串行化技术或者使用可以跨多个平台和语言的XML模型);方案②,写至关系数据库。 14.OO设计的目标是设计抽象、高度可重用的类。 15.尽可能为用户提供最小接口。确定最终的接口是一个迭代的过程。 16.异常粒度:可以捕获不同粒度的异常。可以捕获所有异常也可以只检查某些异常。 17.this:关键字是当前对象的一个引用,而super:表示当前对象父类对象的引用 。 18.静态属性:为该属性分配一段内存用于由这个类实例化的所有对象,该属性由该类的所有对象共享。这有些接近全局数据的概念。 19.操作符重载(operator overloading)可以改变一个操作符的含义,如"+"可以用作加号,也可以用作字符串拼接。大多数OO语言并不允许操作符重载。 20.a.继承和组合存在的最主要原因可能就是对象重用。继承——is-a关系;组合——has-a关系。 b.继承是子类使用父类的方法,而多态则是父类使用子类的方法。重载、重写、继承、多态的区别 Triangle tri = new Triangle(); //继承 Shape shape = new Triangle(); //多态 c.重载是在一个类里一系列名字相同参数不同的方法,而重写(override)是指子类的实现替代父类中的实现,继承后重新实现父类的方法。 d.Object类在Java和.Net环境下是所有类的基类。 21.每个新的继承关系都会为继承方法的使用建立一个新的上下文。需要为每一个这样的上下文考虑一个完整的测试策略——测试新的代码。 22.创建可重用代码的一种方法就是创建框架。框架的思想围绕着即插即用和重用原则。可以用接口和抽象类来创建框架。 23.契约(contract):要求开发人员遵守应用编程接口规范所需的机制。在.Net中,实现契约两种方法:抽象类和接口。 24.继承是一种严格的is-a关系,但接口不是。接口可以跨多个类。 25.a.XML(extensible markup language)是不同系统之间定义和传输数据的一种标准机制,面向对象数据定义语言。 b.HTML表示数据,XML描述数据(格式化数据),还可以用CSS辅助格式化数据(侧重于显示的样式)。与HTML相比,XML提供了合法性检查——DTD(Document Type Definition)。为了能够验证文档使得XML文档更为健壮,需要在DTD中定义用来描述数据的标记。 26.含有抽象方法的类必然是抽象类,而抽象类的方法不一定都是抽象方法。抽象类不能被实例化。抽象类不能是密封的或静态的,抽象类被子类继承并实现它的方法。 只有虚方法或静态方法可以被重写,抽象方法可以看成是没有实现体的虚方法。基类的抽象方法需要子类去实现,而虚方法已经在基类中实现,子类是否选择覆盖基类方法取决于子类的需求。抽象方法和虚方法的区别 27.面向对象的三大特征:①封装:保证对象自身数据的完整性、安全性;②继承:建立类之间的关系,实现代码复用、方便系统的扩展;③多态:相同的方法调用可实现不同的实现方式。面向对象的多态性 28.密封类是类的一种,用sealed修饰,不能用作基类。因此,它也不能是抽象类。密封类主要用于防止派生。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值