面向对象
面向对象编程---OOP
属性+方法就是一个类!!!!
面向过程:步骤化,清晰简单,第一步做什么、第二步做什么。。。。(线性思维、具体执行流程)
面向对象:分类的思维模式,适合处理复杂问题,处理需要多人协作的问题(框架)
面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据!!!
抽象:把相似的部分抽取出来
三大特性:
封装:把数据封装包装起来---”高内聚,低耦合“

属性私有,get/set

继承:子类集成父类的所有功能;extands”扩展“ ;本质是某一批类的抽象(一个儿子只能有一个爸爸,但是一个爸爸可以有多个儿子)
JAVA种只有单继承,没有多继承!!

1.super:和this进行对比
点击查看代码
super注意点:
1.super调用父类的构造方法,必须在构造方法的第一个
2.super必须只能出现在子类的方法或者构造方法中!
3.super和this不能同时调用构造方法!
对比 this:
1.代表的对象不同:
this:本身调用者这个对象
super:代表父类对象的应用
2.前提:
this:没有继承也可以使用
super:只能在继承条件才可以使用
3.构造方法
this():本类的构造
super():父类的构造!!!
点击查看代码
重写:需要有继承关系,子类重写父类的方法!
1.方法名必须相同
2.参数列表必须相同
3.修饰符:范围可以扩大,但是不能缩小 public》protected》default》private
4.抛出的异常:范围可以被缩小,但不能扩大; ClassNotFoundException--->Exception(大)
重写:子类的方法和父类必须要一致;方法体不同!!!
为什么需要重写:
1.父类的功能,子类不一定需要,或者不一定满足!需要重写
alt+insert:override;重写
点击查看代码
多态存在的条件:
1.有继承关系
2.子类重写父类方法
3.父类引用指向子类对象

代码运行角度:先有类,后有对象,类是对象的模板。
方法名:见名知意原则+驼峰原则
非静态可以调用静态和非静态方法,静态方法智能调用静态方法
类和对象的关系

使用new关键字创建对象

点击查看代码
养成一个习惯:不要在每一个类里面都加一个main方法!
可以定义一个大的启动类或测试类!!!
一个类里面只可能包含属性和方法两种!!!!

this表示当前的类
构造器:也叫构造方法,不能有void
1.必须和类的名字相同
2.必须没有任何返回值


画图理解:

instanceof:(类型转换) 引用类型,判断一个对象是什么类型
点击查看代码
/**
* 1.父类引用指向子类的对象
* 2.把子类转换为父类,向上转型:不用强制转换
* 3.把父类转换为子类,向下转型:强制转换,可能会丢失精度
* 4.方便方法的调用,减少重复的代码,有效提升利用率!
*
* 抽象:封装、继承、多态
*/
static关键字:

抽象类:

点击查看代码
//abstract 抽象类:本质:是继承 extends:单继承 (接口可以多继承)
public abstract class Action {
//约束,有人帮我们实现
//abstract抽象方法,只有方法名字,没有方法的实现
public abstract void doSomething();
//特点:1.不能new这个抽象类,只能靠子类去实现它,主要是约束!
//2.抽象类里面可以写普通方法,但抽象方法必须在抽象类中
//抽象的抽象:约束~
//思考:是否存在构造器?存在的意义是什么?--节省代码的开发,提高开发效率
}
接口:
普通类:只有具体实现
抽象类:具体实现和规范(抽象方法)都有!
接口:只有规范!自己无法写方法--专业的约束!约束和实现分离:面向接口编程!!

声明类的关键字是class,声明接口的关键字是interface

点击查看代码
//抽象类 extends -单继承
//类 可以实现接口 implements 接口 ,可以继承多个;利用接口可以实现多继承
//实现了接口中的类,必须要重写接口里面的方法!
点击查看代码
作用:
1.约束
2.定义一些方法,让不同的人实现
3.public abstract--方法
4.public static final --常量
5.接口不能被实例化! 因为接口中没有构造方法
6.接口可以实现多个接口,通过implements
7.使用接口,必须要重写接口中的方法!
内部类:(重点)
就是在一个类的内部再定义一个类
种类:
1.成员内部类

2.静态内部类:加static
内部类可以访问static,但是static的内部类不能访问外部非static属性
3.局部内部类

4.匿名内部类

本文来自博客园,作者:sharline,转载请注明原文链接:https://www.cnblogs.com/sharline/p/18798611
浙公网安备 33010602011771号