第3章 面向对象(上)
2018-08-03 14:36:25 0 举报
AI智能生成
面向对象相关知识
作者其他创作
大纲/内容
面向对象(上)
面向对象的概念
什么是面向对象
面向对象的好处
代码的复用性提高
使用者无需关心具体的实现细节
转变程序员的角色,更加符合人的思维习惯
面向对象的特征
封装性
继承性
多态性
类与对象
类的定义
为什么定义类
定义一个类
对象的创建与使用
对象的产生
对象的使用
成员变量的初始化
对象的生命周期
变量超出作用域变为垃圾对象
将变量的值赋为null
类的设计
类的封装
为什么要封装
什么是类的封装
构造方法
构造方法的定义
方法名和类名相同
方法名的前面没有返回值类型的声明
方法中不能使用return语句返回一个值
构造方法的重载
和普通方法一样,构造方法也可以重载
在一个类中可以定义多个构造方法,只要每个构造方法的参数类型或参数个数不同即可。
在创建对象时,可以通过调用不同的构造方法为不同的属性赋值
构造方法的细节
this 关键字
this关键字的作用
可以解决成员变量与局部变量名称冲突的问题。
this关键字的三种用法
通过this关键字可以明确地去访问一个类的成员变量
通过this关键字调用成员方法
使用this时需要注意的问题
只能在构造方法中使用this调用其它构造方法,不能在成员方法中使用。
在构造方法中,使用this调用构造方法的语句必须位于第一行,且只能出现一次。
不能在一个类的两个构造方法中使用this互相调用。
垃圾回收
static 关键字
静态变量
定义
被static 修饰的变量
引用方式
类名.变量名
特点
静态变量在类加载的时候就完成了初始化,它可以被所有实例所共享
注意的问题
static 关键字只能用于修饰成员变量,不能用于修饰局部变量
静态方法
被static 修饰的方法称为静态方法
类名.方法名
静态方法内部不能直接访问外部非静态的成员
在静态方法内部,只能通过创建该类的对象来访问外部的非static 方法
在静态方法中,不能使用this 关键字
静态代码块
被static 修饰的代码块
静态代码块在类加载的时候就执行了,它一般用于初始化的成员变量
单例模式
什么是设计模式
针对某一问题的最佳解决方案
单例设计模式的定义
单例设计模式的特征
将构造方法私有化
对外提供一个公有的get 方法,让别人通过此方法来获得实例
由于不能创建对象,所以get 方法必须静态,这样别人才能使用“类名.方法名”的方式访问
需要保证单粒,提供一个静态变量记住一个实例,用于返回
该实例应该私有,禁止外界通过直接访问进行改动
单例模式的示例代码
内部类
非静态的内部类
在类中定义的没用static修饰的类称为非静态内部类
内部类特点
内部类可以直接访问外部类的成员,而外部类不能直接访问内部类的成员。
内部类与内部类之间可以继承;
非静态的内部类中不能声明静态的成员
例子
静态内部类
被static修饰的内部类称为静态内部类
static修饰的内部类中可以定义非static修饰的成员
static修饰的内部类中不能访问外部非static的成员
方法内部类
在成员方法中定义的类称为方法内部类。
方法内部类只能在当前方法中使用
局部内部类中可以直接调用外部类的成员变量。
匿名内部类
概念
匿名内部类使用规则
定义匿名内部类的格式
匿名内部类不能是抽象类
匿名内部类不能定义构造方法
匿名内部类需要访问外部类的局部变量,则必须使用final修饰符来修饰外部类的局部变量
场景
需要创建某个接口类型的对象
Java 帮助文档
引入主题
0 条评论
回复 删除
下一页