带你建立面对对象的思维

带你建立面对对象的思维

一、基础术语

1、对象:就是一件东西或者物,“存在”的事物,本质是结构化“数据”
2、类
(1)是对象的类型,是名词概念,本质上是对象的数据结构定义
(2)类中声明的对象的属性,对象属性在类中声明,运行期间在堆内存中分配对象(对象属性)
3、引用
(1)引用变量,业务逻辑上引用对象的代词,本质上存储的值是对象的首地址,通过首地址间接引用了对象。
(2)引用类型变量的值,不是直接的对象,是通过地址间接访问对象,引用本身不是对象。

二、思维建立

1、对象的属性(对象的数据):实例变量

2、类:用类创建对象,需要先声明类,类是对象的抽象结构定义,对象的属性是定义在类中的。
使用new运算调用构造在堆中分配内存创建对象,对象都在堆(内存)中创建

3、构造器:创建并且初始化属性的过程。
名称与类名一致,不能声明返回值,可以有参数,参数是创建对象的前提条件。

4、方法:对象的行为
方法是业务功能的体现,本质是利用算法操作数据(对象)实现

5、继承:被继承的类型是父类型(Super Class)继承类型是子类型(Sub Class)

1)子类继承父类中所有可继承资源
方法(私有除外)所有子类共享了父类的方法

2)私有方法不继承,构造器不可继承

3)父类型可以定义引用子类型实例

*注意:Java按照“变量类型”检查是否调用方法*

4)子类型可以重写(覆盖)父类型的方法

*重新的方法,调用的是子类型对象的方法(动态绑定)*

5)属性是根据变量类型进行访问的

6)默认构造器现象

6、重载和重写的区别
(1)重写:发生在父子类之间,是子类型定义与父类型“一样的方法”,目的是子类修改父类的方法!
最重要的目的是“修改”,修改以后,在运行期间执行子类型对象的方法,父类型的方法被替换掉了(修改了)

  语法:子类方法名与父类一样,参数相同	
		修饰词可以放大,异常可以具体化(小类型)
		父类的私有方法,不能被继承,就不能被重写
		运行期间动态调用对象类型的方法

(2)重载:是类中(含父子类型)方法名一样,功能类似,参数不同的方法

  语法:方法名一样,参数列表不同的方法
			目的是使API的设计更加优雅
			根据方法名和参数的类型调用对应的方法 

三、注意的问题

1、访问控制(访问修饰):控制属性,方法,类的可见范围

public:修饰类,属性,方法,构造器,内部类等,在任何地方都可见
protected:只能修饰类的成员,在类体中使用,在当前package中可见(很少使用package作为访问范围),
			保护的成员主要留给子类使用的资源
默认的:当前package中可见,很少使用
private:只能修饰类的成员,在类体中使用,是彻底封装,仅在类内部可见。

2、使用原则:尽可能私有。留给子类使用保护。减少使用公用,默认的几乎不使用。
3、常见方式:私有属性,公用访问方法(get,set方法)。
4、Java源文规格
(1)

package {0,1}

import {0,n}

public class {0,1}只能有一个公有类!文件名与公有类名一致

class {0,n} 一个文件中的多个类都是默认的

(2)如果没有公用类,文件名与任意类名一致,一般情况下:一个文件一个公有类
(3)只有公有类才能在其他包中访问,默认类只能在当前包中访问!

posted @ 2020-03-26 19:35  李泽坤  阅读(139)  评论(0编辑  收藏  举报