Java学习笔记(1)
面向对象
什么是面向对象?
面向对象将所有预处理的问题抽象为对象,同时了解这些对象有哪些相应的属性和行为,以解决这些对象面临的一些实际问题
面向对象的三大特性:
-
封装性:将对象的属性和行为封装起来,载体是类,类对客户隐藏实现细节
-
继承性:利用特定对象之间的公有属性
-
多态性:将父类对象应用于子类的特征就是多态性,多态的实现并不依赖具体类。即同一个行为根据不同实例而不同
构造方法是什么?
构造方法是与类同名的方法,每当类实例化的时候,都会自动调用构造方法。
- 构造方法没有返回值
- 方法名与类一样
- 完成对象初始化,将对象的参数传给实例
static关键词
-
static修饰的变量、常量和方法被称为类的静态成员 ,静态成员属于类所有,区别于个别对象
-
类被加载时,静态变量就被分配到内存中,直到程序结束才会被释放
-
用 final static 修饰一个成员变量,这个成员变量就会变成一个静态常量
-
有时候不想或者无法创建类的对象时需要调用类中的方法可以使用静态方法
-
用static 修饰代码区域可以被称为静态代码块,可以完成类的初始化,在类声明时就会运行
类的封装
封装是面向对象编程的核心思想,将对象的属性和行为封装起来,载体是类,类对客户隐藏其实现细节
类的继承
基于某个父类的扩展,制定出一个新的子类,子类可以继承父类原有的属性和方法,也可以增强原来父类所不具备的属性和方法,或者重写父类的方法。 extend 实现继承。所有类的父类Object类
类的多态
指“一种定义,多种实现”
类型转换:向上转型,由子类转型到父类总是安全的。向下转型,需要使用显示类型转换,要指明将父类转换为哪一种类型
instanceof:关键词判断父类对象是否为子类对象的实例
抽象类:是对根源的抽象
接口:是对动作的抽象
访问控制符
public | protected | default | private | |
---|---|---|---|---|
本类 | 可见 | 可见 | 可见 | 可见 |
本类所在包 | 可见 | 可见 | 可见 | 不可见 |
其他包中的子类 | 可见 | 可见 | 不可见 | 不可见 |
其他包中的非子类 | 可见 | 不可见 | 不可见 | 不可见 |
final关键词
定义为final的类不可以被继承
定义为final的方法不可以被重写
定义为final的变量不可以被修改
内部类
- 成员内部类:在一个类中使用内部类,可以在内部类中直接存取其所在类的私有成员变量,可以随意使用外部类的成员方法和成员变量。内部类可向上转型成为父类的一个接口
- 局部内部类:可以在类的局部位置定义,如在类的方法或任意的作用域
- 匿名内部类:实质上这种内部类的作用就是创建一个实现于接口的匿名类的对象
- 静态内部类:在内部类前面加修饰符static