1. 面向对象的基本概念1). 面相对象 (OOP) 和面向过程(OPP) 的关系 (1). 面相对象是把以前需要逐个执行的动作都全部封装起来 (2). 面向对象是基于面向过程的!!!!! 2). 面向对象的三大特征封装、继承和多态 3). 类和对象(1).基本概念 [1]. 类是对现实生活中事物的描述。 [2]. 对象是这类事物实实在在的一个个体 [3]. 类和对象在Java中的体现 {1}.在Java中描述事物就是用class来定义类 {2}.在Java中产生一个类的实体就是用new来创建类的对象 [4]. 描述事物和Java中类的关系 {1}.描述事物就是在描述事物的属性和行为 {2}.定义类就是在描述事物,就是在定义事物的属性和行为 (2). 类的成员 类中的属性和行为共同组成了类中的成员 (3). 局部变量和成员变量的区别 从内存中的位置和作用范围两个方面来考虑 [1]. 内存中的位置:成员变量位于堆内存中 (因为对象是存储在堆内存中的) 局部变量位于栈内存中 [2]. 作用范围:成员变量作用于整个类中 局部变量作用于函数体或者局部代码块中 4). 匿名对象(1). 匿名对象与普通对象的关系 [1]. 对象可以有名字,也可以没有名字。没有对象名的对象就是匿名对象。 [2]. 匿名对象是普通对象的简化形式。 (2). 匿名对象对属性和方法的调用 [1]. 匿名对象直接调用属性是没有意义的!! 原因就是匿名对象没有名字,也就是没有引用变量在栈内存中直接指向堆内存中的匿名对象。因此 new Car(). num =5; 执行完之后,匿名对象就变成了垃圾,会被回收掉。那么对其属性的读写操作也就没有什么意义了。 [2]. 匿名对象直接调用方法是有意义的!! (3). 匿名对象的适用范围 [1]. 当对象的方法仅被调用一次的时候,可以使用匿名对象来简化书写。 匿名对象的弊端:但是如果对一个对象的多个成员进行调用的时候,匿名对象失去作用。 [2]. 可以将匿名对象作为实参进行参数传递。 注意:当这个被调用的方法接受一个匿名对象并且执行完毕之后,这个堆内存中的匿名对象就变成了垃圾对象。 5). 封装(1). 含义 [1]. 是指隐藏对象的属性和实现细节,仅仅对外提供公共访问接口。 [2]. 对外提供公共访问接口的原因就是:在访问方式中加入逻辑判断语句 (2). 封装和私有的关系 [1]. 私有仅仅为封装的一种表现形式 [2]. 不私有同样也能实现封装。只要权限在你访问不到的权限的范围内,对你来说就是封装。 (3). 封装的原则 [1]. 将不需要对外提供访问的内容隐藏起来 [2]. 把属性都隐藏,提供公共方法对属性进行带有逻辑判断的访问。
|