java面向对象-封装
一、面向对象设计简述
-
1、面向对象设计的优点;
- a、更符合人类的思维习惯,贴近生活
- b、 代码可重用性高
- C、代马可流护性高
- d、提高了软件并发和设计的效率
-
2、面向对象和面向过程的区别
- a、面同过程贷本的是算法和流程,拨main函数入口,先做什么,再做什么
- b、面向对象侧重的是数据本身,有哪些对象,对象存储哪些属性(数据),哪些行为
-
3、面向对象设计的过程就是拍象的过程; (提取有用的数据就是拍象)
- a、发现类
- b、发现类的属性
- C、 发现类的方法
二、构造函数
- 1、对象构建好后,要通过属性一个一个赋值很麻炼
- 2、 构造函数常用于对属性进行初始化,或者完成一些初始操作
- 3, 构造函数,construetor. 也叫构造方法,构造器
- 4、构造函数通常是公有的,即public
- 5、构造函数没有返回值类型,连void都不能写
- 6、构造函数的函数名需要和类名相同
- 7、在构建对象的时候,公调用该类的构造函数,这样构造函数可以强制对属性做初始化
- 8、如果类本身没有显示定义构造函数,则系统会为其添加一个默认的无参的构造函数
- 9、this指代的是当前对象
- 10、只能在构建对象的时候通过new关健字调用构造函数,否则不能像普通方法那样调用构造函数
三、方法重载
- 1、一个类里面可以有多个同名的但参数不一样的方法,叫方法重载
- 2、方法重载:override
- 3、方法重载涡足的条件:
- a、同一个类中
- b、方法名相同
- c、参数不同(个数、顺序、类型)
- 4、注意;方法的返回值类型与方法重载无关
- obj.add()
- obi. add()
- 方法的返回值有时候会不接收,这样系统无法判断需要调用哪一个方法
- 5、方法重载的好处。
- a、并没有节省代码
- b、但方便了方法的调用者,只需要记一个方法名,简化了方法的调用
- 6、 构造函数也可以重觑,所以一个类可以有多个构造函数
- 7、构造函数没有返画值类型,再次说明了方法重载和返回值无关
- 8、一个类如果有多个构造函数,构建对象的时候可以选择调用哪一个构造函数
- 9、本类内部的构造函数之间也可以互相调用
- a、马过thsi关字调用其他构造函数
- b、代码必须放在整个构造函数的第一行
四、static静态关键字
- 1、static:静态的
- 2、static修饰的属性和方法称为静态属性或静态方法
- 3、 static不能修饰局部变量
- 4、方便在没有创建对象的情况下来进行调用
- 5、被static关键字修饰的方法或者变量不需要实例化对像进行访问
- 6、static方法就是没有this的方法
- 7、在static方法内部不能调用非静态方法。反过来是可以的
- 8、对于静态方法来说,是没有this的,因为它不依附手任何对象
- 9、static修饰的变量属于类变量,所有对象共享
五、final关键字
- 1、final翻译为最终的,这里用于修饰常量,表示值不可变
- 2、声明常量:final double PI = 3.14159;
- a、常量声明的时候必须赋值
- b、女值后不能修改其值
- c,如果是引用类型,表示引用不可变,但是属性值可以修改
- A、代者的可途性好
- b、 代码的可维护性好,如果修改只要改一个地方
- C、 final的使得值无法修改,static使得值的使用方便
- d、静态常量的命名要求字母全部大写,中间用下划线分隔
六、属性封装
- 1、面向对象的三大特性;封装、继承、多态
- 2、封装是将类的状态信息飚藏在类的内部,不允许外部程序直接访问,而通过该类提供的方法来实现隐藏信息的操作和访问
- 3、为了防止随意给属性赋值,可以将属性私有化:private
- 4、通过编写get、set方法来过滤赋值和读值的操作
- 5、通过get、set方法的组合,可以分为:
- a、只读属性
- b、只写属性
- c、读写属性