概览:OOP
类,对象,抽象类,接口
个性:封装,继承,多态

类:事实中的类型,抽象的概念
雷同属性和办法的对象的汇合

对象:特定个体,具体的货色,万物皆对象
属性—-对象的各种特色
办法—-对象执行的操作

类是对象的形象,即模版,对象是类的具体

类的定义
public class People {

    定义属性   pubic String name    定义方法   pubic void eat(参数)

对象的应用
类名 对象名=new 类名()
对象名.属性
对象名.办法()

根本数据类型,传递值
援用数据类型,传递援用,地址

构造方法:
办法名称和类名是一样的,无返回类型,分带参和无参,
无参构造方法不须要写,零碎默认有
一个类外面能够用多个带参办法

this:对一个对象的默认援用

办法重载:
同一个类,办法名雷同,参数个数和类型不同,不要看返回值

成员变量:类外面申明的变量,或者叫全局变量,能够不赋初始值,零碎默认会给
局部变量:办法外面申明的变量,必须要赋初始值
同一个类中,局部变量和成员变量能够同名,无限局部变量

封装:把尽可能多的货色藏起来,对外提供便捷的接口
属性公有 private
增加对应的setter和getter
对属性非法值进行判断

包:类组成的小单元,文件夹,辨别雷同名字的类,还有访问控制的作用
package先,import后

拜访权限管制:private,public,protect
类和类成员能够用

默认修饰符—-只有本包外面的类能够拜访
pubic—-所有的包都能够拜访

类成员的拜访
private—-其余的类,子类不能够拜访,只有本类能够拜访

pubic—-都能够拜访,包含子类

protect—-本类,子类,同包能够拜访,其余不可

static:动态,能够间接类名来拜访,不须要实例化

static 成员办法——静态方法
类名间接调用,不须要实例化再应用
不能应用this,实例变量,实例办法
main办法是最典型的静态方法

static 动态变量,内存中只有一个拷贝,任何中央都能够间接类名拜访,被类的所有实例共享,能够作为实例间的共享数据

继承
is-a的关系的设计应用继承
将子类独特的属性和行为放到父类
java是单继承
关键字extends
进步代码的重用性

办法重写:
子类依据需要重写父类的办法
重写时,能够用super.形式来
重写的办法与父类必须同名
标记:override

super关键字
代表父类对象
只能呈现在子类的办法和构造方法
能够调用父类的非private属性,办法,构造方法
能够用来调用父类的成员变量

继承机制下的构造方法:
控制台输入
断电跟踪
这些都有利于继承,super的应用

Object类:
所有类的间接或者间接父类
即能够继承Object的属性和办法

援用变量和

多态:
同一个援用类型,应用不同的实例而执行不同操作
应用父类作为办法的形参,是最次要的多态形式
动静绑定:实例办法与理论的援用对象绑定,调用重写后的办法
动态绑定:静态方法与申明的类型绑定

抽象类:关键字 abstract。is-a
蕴含形象办法,就肯定是抽象类
不能被实例化
抽象类外面能够有一般办法
可实现局部性能的实现

形象办法:关键字 abstract
形象办法没有办法体
形象办法必须在抽象类外面
必须在子类中被实现,除非子类是抽象类

向上转型
父类 变量 = new 子类

接口:interface。has-a
补救单根继承的毛病,形象类型
概念性的接口
类实现接口用implements
类能够实现多个接口
jdk8前后有差异
定义了规范和标准
常常与多态联合应用
定义了个别不批改

抽象类与接口的区别:
雷同:
代表形象层
都不能被实例化
都蕴含形象办法
不同:
抽象类利于复用,接口类利于保护
一个类只能继承一个父类,但能够实现多个接口
独特的属性和行为提出到抽象类,子类继承
个体的个性或者新增提出到接口,子类实现
进步维护性和可扩展性

oop设计准则:
多用组合,少用继承
针对接口编程
针对扩大开发,针对扭转敞开