一、万物皆对象
特征:封装、继承、多态、抽象
二、拿来主义
一个整体类,包括属性和方法,直接拿来用
三、整体概念
一个类包括:属性和方法
一个类相当于一个汽车设计图纸
创建一个类的对象相当于创建一个汽车实例
四、对象数组
对象数组中的值中存放的元素是地址码
一个元素相当于一个实例的地址码
创建对象数组时,在jvm中运行
五、面向对象思维
1、封装思维
(1)保证代码安全性:
通过使用private访问修饰符限制该类中的属性和方法的访问范围,不过一般是属性为private
(2)当有很多属性和方法时,进行封装,便于存放和管理
(3)其他属性为private时,要有公开的set/get方法对属性赋值和拿到属性
.set():又被称为写方法,用来给属性赋值
public void setName (String n)
.get():称为读方法,读取属性
public String getName ()
idea提供了快速创建set/get方法的快捷键:[fn]+alt+insert 或者 右键+generate
2、继承思维
(1)不同的对象有什么相同的属性和方法
(2)将相同的方法和属性放到一个父类
(3)用extends来继承父类中的属性和方法
(4)继承的特点:
单继承:一个子类只能有一个父类
一个父类可以被多个子类继承
子类可以继承父类以及父辈的所有属性和方法
3、多态思维
(1)概念
同一个父类,不同的子类对象,方法签名相同,方法功能和操作不同
(2)实现前提
有继承
方法重写(是基础)
父类类型接受子类对象
(3)转型
向上转型(自主的):父类类型接收子类对象
Pet pet = new Dog()
优点:实现多态
缺点:父类对象不能调用子类特有的属性和方法
向下转型(强制的):父类对象赋值给子类对象
Pet p = new Pet();
Dog d = (Dog)p;
优点:父类可以调用子类特有的属性和方法
缺点:可能发生ClassCastException异常(真实类型不匹配)
解决方法:使用instanceof关键字,来判断该类型是否与表面类型和真实类型相匹配
如果真实类型和表面类型有一个和强转类型匹配,为true
如果两个都不匹配,为false
4、解题思路
(1)包含几个对象就有几个类
(2)每个对象有什么属性和方法
(3)是否有一样类型的方法和属性
(4)有就全放在一个父类中