共计 1523 个字符,预计需要花费 4 分钟才能阅读完成。
6.Java 基本概念
面对对象
多态
继承
封装
抽象
类
对象
实例
方法
重载
7、java 面对对象
基本定义
1
类
对事物、逻辑、算法或概念的抽象。描述一类对象的行为和状态。对象(实例)对象是类的一个实例(对象不是找个女朋友),有状态和行为。引用
java 中,一切都“看作”对象,但操纵的标识符实际是指向一个对象的“引用”(reference)。”构造方法
新建对象时,执行的一个特殊方法
在创建一个对象的时候,至少要调用一个构造方法
构造方法的名称必须与类同名,一个类可以有多个构造方法
this
引用当前对象
构造方法之间调用
方法重载 overload
同名不同参
2
抽象类
作用
为子类提供通用代码
为子类提供通用方法的定义
注意点
抽象类不能创建对象
包含抽象方法的类,必须是抽象类
抽象类中,不一定有抽象方法
final
最终不可变的
修饰变量、方法、类
static(静态)静态变量属于类,可以成为“类变量”非静态成员属于实例
静态成员通常使用类名直接调用
被 static 修饰的成员将最优先加载到内存
接口
作用
结构设计工具,用来解耦合
极端的抽象类
用 interface 替代 class
用 implements 替代 extends
接口中只能定义
公共的常量
公共的抽象方法
公共的内部类、内部接口
内部类
定义
定义在类内部,方法内部或局部代码块中的类
非静态内部类
非静态内部类依赖于外部类对象存在
在非静态内部类中,不能定义静态成员
静态内部类
使用 static 修饰的成员内部类,称之为静态内部类
静态内部类只能访问外部类的静态成员
不能直接访问外部类的非静态成员
局部内部类
定义
声明在方法内部的类
局部类型,只能在局部使用
但它的实例,可以转为父类型传递出去
注意
不可以使用任何访问权限修饰符
不可以直接访问局部变量(方法的参数等效于局部变量)如果一定需要访问,则需要使用 final 对局部变量进行修饰
成员内部类
在类(外部类)的内部,且与外部类的成员是“同一级别”的
匿名内部类
直接创建已知的类的子类的对象,则该对象的类型就是匿名内部类
8、java 面对对象三大特性
继承
概念
继承通过 extends 关键字来实现, 其中 SubClass 称为子类,SuperClass 称为父类, 基类, 或超类
作用
代码重用,代码复用
单继承
一个类,只能继承一个父类
一个类,可以有多个子类
不继承
构造方法不继承
没有访问权限的成员不继承
静态成员不继承
多态
多态指的是编译器(申明变量是)和运行期(创建对象后)表现为不同的形态(数据类型)三个条件
继承的存在(继承是多态的基础, 没有继承就没有多态)
子类重写父类的方法(多态下调用子类重写的方法)
父类引用变量指向子类对象(子类到父类的类型转换)
子类转父类规则
将一个父类的引用指向一个子类的对象, 称为向上转型(upcastiog), 自动进行类型转换.
此时通过父类引用调用的方法是子类覆盖或继承父类的方法, 不是父类的方法.
此时通过父类引用变量无法调用子类特有的方法
如果父类要调用子类的特有方法就得将一个指向子类对象的父类引用赋给一个子类的引用, 称为向下转型, 此时必须进行强制类型转换
封装
访问控制符
private
成员变量和方法只能在类内被访问, 具有类可见性.
default
成员变量和方法只能被同一个包里的类访问, 具有包可见性
protected
可以被同一个包中的类访问, 被同一个项目中不同包中的子类访问
public
可以被同一个项目中所有类访问, 具有项目可见性, 这是最大的访问权限
好处
隐藏类的实现细节
让使用者只能通过程序员规定的方法来访问数据
可以方便的加入存取控制语句, 限制不合理操作
具体步骤
修改属性的可见性来限制对属性的访问
为每个属性创建一对赋值 (setter) 方法和取值 (getter) 方法,用于对这些属性的存取
在赋值方法中, 加入对属性的存取控制语句
正文完