面向对象编程:OOP(Object Oriented Programming),OO(面向对象)
思想:
本质:以类的方式组织代码,以对象的组织(封装)数据。
抽象
三大特性:
对象是具体的事物。类是抽象的,是对对象的抽象。类是对象的模板。
使用new关键字创建对象,使用new,本质是在调用构造器
创建对象的同时,除了分配内存空间外,还会进行对象属性的默认初始化,以及类中构造器的调用。默认初始化:
类中的构造器也称为构造方法,是在进行创建对象的时候必须调用的,并且构造器有以下特点:
一个类即使什么都不写,也会存在一个方法,叫做构造方法。
注意点:一旦定义了有参构造,如果想使用无参构造,就必须显示定义无参构造。
快捷键:Alt+Insert
:添加 getter、setter 方法
Constructor可以生成有参构造
程序设计要求:高类聚,低耦合。
高类聚:类的内部数据操作细节自己完成,不允许外部干涉。
低耦合:仅暴露少量的方法给外部使用。
属性私有:private(私有),get/set
封装的好处:
继承的本质是对某一批类的抽象。
继承关键字extends
:扩展。子类是父类的扩展,私有的东西无法被继承,子类的无参构造第一行是父类的无参构造调用super()
。
继承是类和类之间的一种关系,其他关系:依赖,组合,聚合等。
继承关系的两个类。一个为子类(派生类),一个为父类(基类)。
修饰符:
快捷键:Ctrl+H:查看接口的实现类和继承关系
在Java中,所有的类,都默认直接或间接继承Object。
super的注意点:
super和this的区别:
代表的对象不同
this:本身调用者这个对象
super:代表父类对象
前置条件不同
this:没有继承也可以使用
super:只能在继承调条件下才可以使用
构造方法不同
this():本类的构造
super():父类的构造
需要有继承关系,子类重写父类的方法!
静态的方法和非静态的方法
为什么需要重写:父类的功能,子类不一定需要,或者不一定满足!
快捷键:Alt+Insert-Override Methods
定义:即同一方法可以根据发送对象的不同而采用多种不同的行为方式。
多态存在的条件:
对象能执行的方法主要看对象左边定义的类型。
被static,final,private修饰的方法不能被继承,重写,也就不能实现多态。
作用:判断两个类是否存在父子关系。A instanceof B,A是否是B的父类
静态代码块>匿名代码块>构造函数
import static java.lang.Math.random; //静态导入包 {}//匿名代码块:可以用来赋初始值,每次创建类都会执行,构造方法也一样 static {}//静态代码块,只执行一次
关键字:abstract
抽象类的所有方法,继承(extends)了它的子类,都必须要实现它的方法,除非它也是抽象类。
特点:
总结:
声明类的关键字是class,声明接口的关键字是interface
接口里面的属性都是public static final的常量
接口里面的方法都是public abstract的,不用写修饰符,只写返回值。
实现接口的关键字:implements,实现了接口的类,就必须重写接口中的方法。
总结:
定义:就是在一个类的内部再定义一个类
一个Java类中可以由多个class类,但是只能有一个public class类
分类: