这篇博客概念理论性的东西比较多,希望您可以耐心,细心地看完😊😊😊,相信还是有点帮助的
先来谈谈面向对象的三条主线
- Java类及类的成员:属性、方法、构造器;代码块、内部类
- 面向对象的三大特征:封装、继承、多态
- 其它关键字:this、super、static、final、abstract、interface、package、import等
面向对象和面向过程的区别,简单谈谈
- 面向过程:强调的是功能行为、以函数为最小单位,考虑怎么做
- 面向对象:强调具备了功能的对象,以类/对象为最小单位,考虑谁来做
面向对象的两个要素:
- 类:对一类事物的描述,是抽象的,概念上的定义
- 对象:是实际存在的该类事物的每个个体,因而也成为实例(instance)。面向对象程序设计的重点是类的设计。设计类就是设计类的成员
理解“万事万物皆对象”
- 在Java语言范畴中,我们都将功能,结构等封装到类中,通过类的实例化来调用具体的功能结构
- 涉及到Java语言与前端HTML,后端的数据库交互时,前后端的结构在Java层面交互时,都体现为类、属性
属性(成员变量)与局部变量的异同点 补充(初学可能比较容易搞混):属性=成员变量=field=域、字段;方法=成员方法=函数=method 1.相同点:1)定义变量的格式相同;2)先声明后使用;3)都有其对应的作用域 2.不同点: 1)在类中声明的位置不同,属性:直接定义在类的一对{}内。局部变量:声明在方法内,方法形参,代码块内,构造器形参,构造器内部的变量 2)关于权限修饰符的不同,属性:可以在声明属性时,使用权限修饰符指明其权限。局部变量:不可以使用权限修饰符 3)默认初始化值得情况,属性:类的属性根据其类型都有默认初始值。局部变量:没有默认初始值,意味着我们在调用局部变量之前,一定要显示赋值 4)在内存中加载的位置不同,属性:加载到堆空间中(非static)。局部变量:加载到栈中 补充一下类的属性根据其类型的默认初始值,整型—0,浮点型—0.0,字符型—0(不是数字,对应的ASCII码值是32,即空格)或者’\u0000’,布尔型—false,引用类型(类、数组、接口、String)—null(空值,没有赋值的意思)
匿名对象的使用
- 理解:我们创建的对象,没有显示地赋给一个变量名,即为匿名对象
- 特征:只能调用一次
方法的重载 在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可
可变个数形参要注意的几个点(JDK5.0新特性)
- 格式:数据类型…变量名
- 当调用可变个数参数的方法时,传入的参数个数可以为0个,1个,2个…
- 可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载
- 可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载(二者不能共存)
- 可变个数形参在方法的形参中,必须声明在末尾,且最多只能声明一个可变形参
面向对象特征之一:封装与隐藏 高内聚,低耦合:前者指类的内部数据操作自己完成,不允许外部干涉。后者指仅对外暴露少量的方法用于使用。也就是说,隐藏对象内部的复杂性,只对外公开简单的接口,便于外界调用,从而提高系统的可扩展性,可维护性,通俗地说,该隐藏的隐藏起来,该暴露的暴露出来
封装性的体现
- 我们将类的属性私有化,同时提供公共的方法来获取和设置此属性的值
- 不对外暴露私有方法
- 单例模式(后面再了解)…
构造器(或构造方法) 作用:创建对象和初始化对象的信息 说明:
- 如果没有显示的定义类的构造器,则系统默认提供一个空参的构造器
- 定义构造器的格式:权限修饰符 类名(形参列表){ }
- 一个类中定义多个构造器,彼此构成重载
- 一旦定义了类的构造器,系统不再提供默认的空参构造器
关键字this的使用
- this可以用来修饰属性,方法,构造器
- thisi修饰属性,方法,this理解为当前对象或当前正在创建的对象
- this调用构造器
this调用构造器规则较多,总结一下:
- 我们在类的构造器中,可以显示地使用“this(形参列表)”方法来调用本类中指定的其它构造器
- 构造器中不能通过“this(形参列表)”方式调用自己
- 如果一个类中有n个构造器则最大有n-1个构造器中使用了“this(形参列表)”
- “this(形参列表)”必须声明在当前构造器的首行
- 构造器内部,最多只能声明一个“this(形参列表)”,用来调用其它构造器
大家还是要自己敲代码练习哈,尤其是构造器这个点。博主写的代码有点多,就没有放上来了
|