经典总结
类:
类是创建对象的模板,是一组类似对象共同抽象定义
类与对象的区别:
类是静态定义
对象是动态实例
程序操作是对象非类
建模得到是类而非对象
联系
类是对象定义
对象产生离不开这个模版
类存在目的是实例化得到对象
定义类步骤
定义类名
编写字段属性
编写方法代表行为
类建模是一个抽象和封装的过程
抽象:去掉不关注的,次要信息而保留有效信息
封装:信息打包
简单来说将抽象属性和行为包装在一个类中
使用new关键字创建对象:对象的声明,创建与赋值
要求虚拟机分配空间给引用变量,并将此变量
创建对象并使用对象
给成员属性赋值
对象.属性
对对象发送消息即调用方法
对象.方法();
方法定义和调用
类的方法代表的是实例化的某类行为功能
定义类的方法
步骤一
定义方法签名以及返回值类型
步骤二
编写方法体
访问修饰符 类型 方法名(参数列表){
方法体
}
定义和调用
把方法当作一个模版,是一个黑匣子完成某个特定的功能,并返回结果
方法分类
返回为空void的方法
带具体返回类型的方法
不带参数方法
带参数方法
方法返回值
如果方法有返回值,方法中必须使用关键字return返回该值,返回值类型为该方法所定义的返回值类型
方法内可以调用其他方法
调用参数的方法采用值传递
如果参数是基本类型,参数传递是将数据传递方法
如果参数是对象或者数组,参数传递是将对象或者数组的引用值传递给方法
封装
将东西包装到一起,然后以新的形式展现出来
将方法和字段一起包装在一个单元中单元以类的形式实现
信息隐藏,隐藏对象的实现细节,不让外部直接访问到
将数据和方法包装到一个类中,加上具体实现的隐藏,共同被封装,其结果只带特征和行为的数据类型
定义类,定义其属性,方法
封装概念
信息隐藏是OOP最重要的功能之一,是使用访问修饰符
隐藏原因
对模版任何实现细节所做的更改不会影响使用该模版的代码
防止用户意外修改数据
使模版更加易用维护
属性封装的实现
修改属性的可见行=性来限制属性的访问
为每个属性创建一对赋值方法和取值方法用于属性的方法接口
在SETTer和getTer方法中根据加入的属性进行操作的限制
除非必须公开底层实现细节,否则应该将所有属性制定为private 加以封装
使用封装增强了数据访问权限增求维护性
封装的方法目的
隐藏方法实现细节,向外提供公开接口
简单调用方便修改维护
可以私有化方法共给类内部使用
构造方法
概念和作用
构造方法负责对象初始化工作,为对象属性符合的初始值
创建对象,其中类构造方法确保用户操作对象系统保证初始化
构造方法语法规则
构造方法与类名相同
无返回类型
方法实现主要为字段赋值初值
构造方法的调用
构造方法很特别用new操作
this关键字
在类的方法使用关键字代表是调用方法的对象引用
this可以看作变量
使用this可以处理方法的成员变量和行啊惨同名问题
当方法内需要调用方法的对象可以用this
在类中构造方法可以调用this来调用类的指定构造方法。
static 关键字特点
用来修饰的成员,修饰变量为类变量,修饰的成员方法称静态方法
用于类加载的时候被加载优先于对象存在
用来修饰语句快成为静态快,优于构造方法执行,只执行一次
静态修饰成员被所有对象共享
方法重载
多数程序设计语言要求为每个方法函数提供独一无二的方法名,不存在方法重载的概念
在JAVA中,规定方法签名是解析方法的规则而不是方法名,为方法重载开创条件
方法重载使一个类中,方法名相同而参数列表不同的方法可同时存在,代表类似的行为和功能
重载OverLoad概念:同一个类中,同名不同参数的方法为重载方法
注意:仅返回类型不同的方法不能为重载,即方法重载必须方法签名不同
标准JAVA库是一系列包组成,包括java.lang,java.util,java.net等等,java包是层次型包结构,如同硬盘嵌套子目录一样,可以使用嵌套层次结构来组织包。
包
一个类中使用一个所有的类以及其他包中所有公开的类
可以通过两种方式访问其他包公开的类
简单在每个类前面加上完整的包名
java.util.Date.today=new java.util.Date();
更简洁通用的方式:使用import语句来导包
import语句提供了其他包类的提供方式,可以免去完整累赘
import.java.util.Date
-----------------------------
------------------------------
Date today=new Date();
继承
概念:继承背后的方法是基于已存在的类构建新类
当从已经存在的类继承,当它的方法和属性,还可以添加新的方法和属性来指定需求
约定:从其他导出来的类叫子类,被导出来的类叫父类
除了OBject类外,所有类都是子类,都有唯一的父类
继承在OOP不可或缺
创建一个类总是在继承
类之间关系
ls-a继承体现
has-a组合体现
like-a实现接口体现
继承意义
代码重用
体现不同抽象层次
父子之间关系
父类更抽象
子类更具体
super
关键字特点
super和this关键字类似,super代表是父类对象的引用
当子父类的同名成员可以通过super进行区分
子类构造方法通过super关键字调用父类构造方法
强调:当构造一个子类对象的时候一定先调用父类的构造方法来构造父类的对象。调用父类的构造方法语句必须是子类构造方法第一条指令
方法重写override
方法重写指子类可以根据需求对从父类继承来的方法来进行改写是多态机制的前奏
方法重写注意点
重写方法必须和被重写方法相同的方法名称,参数列表和返回值
重写的方法不能使用被重写方法更严格的方法
父类中的私有方法不能被重写
在子类重写的方法中继续调用父类父类被重写的方法可以通过super. 函数名获取
final关键字特点
final可以用来修饰变量,方法,类
final修饰的变量是一个常量。一旦赋值就不能修改
final修饰类代表此类不能被继承
final修饰方法代表方法不能重写