面向对象
三大特色
封装性,把相干的数据封装成一个“类”组件
继承性,是子类主动共享父类属性和办法,这是类之间的一种关系
多态,加强软件的灵活性和重用性
类
-
java语言的最根本单位,是一类事物的形象(能够了解为模板或者图纸)
- 如果类里什么都没有写,起码会暗藏一个无参结构。
- 无参结构不是时时刻刻都有,如果只提供含参结构,无参结构就没了
- 当被实例化的时候构造方法就会被触发。
- 类里能够提供多个构造方法,不便外界new。
对象
三个特点 状态 行为 标识
状态:形容对象基本特征
行为:形容对象的性能
标识:对象在内存中存在惟一一个地址用来与其余对象辨别
成员地位类里办法外
一个.java文件中,能够蕴含很多个类,只不过只能有一个类能被public润饰,而且被public润饰的文件名就是.java的名
对象在内存中的寄存
个别局部变量存在栈中
对象存在堆中
断点模式/debug
用来在开发调试阶段,跟踪代码执行过程
操作步骤
--设置断点
--开启断点模式
--单步执行f6 开释断点f8
封装
通过private的关键字封装后只能在本类中应用。
属性被封装后
public void setName(String n) {
name=n;}
public String setName() {
return name;}
构造方法
作用
用来实现对象的创立和初始化
当实例化一个对象时,会主动调用办法
--一个 非凡的办法 非凡在没有返回值+办法名就是类名
语法
修饰符 类名(参数列表){办法体}
--默认暗藏一个无参的构造方法。
结构代码块和部分代码块
1.代码块
一段被{}包起来的代码
2.地位
成员地位:类里办法外--结构代码块
办法里--部分代码块
3.结构代码块
用来提取构造方法中的共性
执行程序 结构代码块——————构造方法
作用:提取的代码的共性,进步了代码的复用性
触发的工夫节点:new时。
4.部分代码块
--作用:用来控制代码块的作用范畴
总结:
作用
结构代码块--提取办法中的共性,高聚合
部分代码块--控制变量的作用范畴
地位
- 结构代码块--在类里办法外。
部分代码块--在办法里。
触发工夫点
结构代码块--new时。
部分代码块--办法被调用时。
执行程序
结构代码块--构造方法--部分代码块
this关键字
this关键字
总结
this个别能够省略,然而当成员变量名和局部变量名雷同时必须用this
如果不必this,会依据变量应用的就近准则始终应用局部变量
this能够实现构造方法见相互调用,只不过必须是构造方法里的第一条语句。
然而只反对单项调用(禁止套娃)
ps.如果是根本类型传递的是值,如果为援用类型传递的就是地址值。
继承
概述
继承是从已有的类中派生出新的类,新的类能排汇已有类的数据属性和行为,并能扩大新的能力。
这种技术使得复用以前的代码非常容易,可能大大缩短开发周期,升高开发费用。
特点
应用extends关键字
相当于子类把父类的性能复制了一份
java只反对单继承
继承能够传递(爷爷,儿子,孙子的关系)
不能继承父类的公有成员
继承多用于性能的批改,子类能够领有父类的性能的同时,进行性能拓展
super关键字
1.super示意父类对象的援用
2.super在子类中,调用父类的性能。
3.super在构造方法里必须是第一条语句
办法的重写
作用
个别不会产生除非子类继承了父类性能后,想要批改时才产生
要求
--在子类中想要改时,子类的办法申明要求和父类一样。
--子类的权限修饰符>=父类
总结
--子类能总结父类除公有的所有性能,还能进行性能拓展。
--子类继承父类的办法后,如果要改,还能进行办法的重写。
--重写:子类的办法申明要求和父类一样。
--重写没有影响父类性能,改的只是子类性能,源码不容许批改。
--子类创建对象是会先调用父类的无参结构,而后在执行本人的,如果父类没有无参结构会调用父类的含参结构。
ps.OCP准则:开闭准则--对源码批改敞开,对性能扩大凋谢
static关键字
特点
--能够润饰成员变量和成员办法
--动态资源加载机会早于对象,是跟着类加载而加载的。(即便不new一个对象也能够应用)
--动态资源能够应用对象调用,也能够能够用类名调用。
--动态资源是共享资源,能够被多个对象共享(对象a更改动态资源后,对象b的调用动态资源也是更改过的)
--动态资源调用的资源必须也是动态的。一般资源里能够调用动态资源。
动态代码块
--领有static的所有特点
static{
}
总结
--触发的工夫节点
结构代码块:调用办法前--提取构造方法的共性
构造方法:在创建对象时--用来创建对象和对象初始化
动态代码块:类加载时--实现我的项目的初始化(加载的早且值执行一次)
部分代码块:办法调用时--控制变量范畴
动态代码块>结构代码块>构造方法>部分代码块
final
1.final能够润饰类,办法,变量。
2.final润饰的办法是最终办法,final润饰的变量是最终变量(常量)。只能继承不能批改。
多态
概述
是指一个对象领有多种状态
益处是: 进步程序的灵便和扩展性
目标: 写出通用的代码,做出通用的编程,对立调用的规范
特点
--前提:产生继承关系+办法重写
--口诀1.父类援用 指向 子类对象。(是指,父类援用--援用类型的变量a是父类类型,子类对象--是指要创立的对象是子类的对象)
--口诀2:编译看右边,运行看左边(编译看右边--是指能用调用的性能,肯定是右边父类提供的。运行看左边--是指运行的后果是看左边,看子类的实现形式)
目标
多态的目标是对立调用规范--规范就是父类。
多态的益处
益处是能够把不同的子类对象都当作父类来看,能够屏蔽不同子类对象之间的差别,写出通用的代码,做出通用的编程,对立调用规范。
只须要传入的参数是 父类的类型 ,不须要具体指定是哪个子类,屏蔽了子类之间的不同.
多态的应用
--成员变量/成员办法/动态资源
--办法申明父类的,办法体用子类的
--应用父类的成员变量
--动态资源不能被重写(应用父类的办法申明和办法体)
异样
用来封装错误信息的对象
--1.概述:是指程序中呈现的bug,被封装成一个异样类。
--2.继承体系
--throwable
--Error:零碎级谬误,非软件谬误
--Exception:软件中呈现的谬误
异样解决
--因为程序中可能会产生异样,为了不能让用户看见异样,须要钻研异样解决的办法
--捕捉--相当于本人解决的谬误
try{
.....
.....
....
....
}catch(异样类型 异样名字){
给出正当的解决方案
}
--抛出:我不论,爱谁关谁管
在办法申明上加一段代码 throws 异样类型1,异样类型2
异样之后的代码不会执行,必须要执行必须办法finally里
try{
}finally{
}
总结
--1.当程序中出现异常时必须解决掉,不能裸露给用户。
--2.解决异样的形式有二种,捕捉和抛出。
--3.捕捉try{会有问题的代码}catch(异样类型 变量名){解决方案} 能够catch屡次。
--4.抛出的语法:在办法申明上增加throws 异样类型1,异样类型2;
--5.如果代码放在try可能会出现异常后的代码不执行的状况。为了保障代码肯定会执行,能够把这样代码放入finally块。
--6.怎么决定遇到异样时捕捉还是抛出,晓得计划尽量捕捉,不晓得办法能够抛出。
拜访控制符
--1.概念
用来管制资源拜访权限
--2.办法重写
要求子类在重写父类办法时权限要有足够的权限
抽象类
形象的 public void eat ;//没有办法体就是形象的办法
Java中能够定义没有办法体的办法,该办法由其子类来具体的实现。该没有办法体的办法咱们称之为形象办法,含有形象办法的类咱们称之为抽象类。
抽象类能够了解为是一个只有办法申明没有办法体的非凡类。
概述
当子类继承了父类后,如果想要批改就要产生重写景象。
重写要求紫的办法申明和父类一样,此时父类的办法多余。
罗唆父类不提供办法体,没有办法体的办法是一个形象办法
类里有形象办法就是抽象类。
特点
1、 通过java关键字abstract实现
2、 能够润饰办法或者类
3、 抽象类中能够没有形象办法(由子类去实现)
4、 如果类中有形象办法,那该类必须定义为一个抽象类
5、 子类继承了抽象类当前,要么还是一个抽象类,要么就把所有形象办法都重写
6、 多用于多态中
7、 抽象类不能够被实例化(抽象类不能new)
总结
--抽象类有构造方法
--抽象类不能被实例化
--抽象类提供构造方法的目标是给子类实例化--子类new时暗藏着一个super();
--抽象类中有变量也有常量
--抽象类是一个非凡的类因为他基友一般办法也有形象办法。
--子类继承了抽象类,要么重写所以形象办法,要么变成形象的子类
接口
概述
接口的益处:接口是一套开发的标准。+ 同时应用多个接口,体现了可扩展性灵活性
当前的开发要做到面向接口编程,面向形象编程。
特点
-- 接口中都是形象办法
-- 通过interface关键字创立接口
-- 通过implements让子类来实现
-- 能够了解成,接口是一个非凡的抽象类
-- 接口冲破了java的单继承的局限性
-- 接口和类之间能够多实现,接口和接口之间能够多继承
-- 接口是对外裸露的规定,是一套开发标准
-- 接口进步了程序的性能扩大,升高了耦合性
接口的简单用法
--接口和类之间能够多实现,接口和接口之间能够多继承
继承父类的同时,实现接口。
总结
--类和类间的关系
继承关系,而且是单继承
--class A extends B
A是子类,B是父类
A的劣势,能够应用B里的性能,而且能够应用本人的扩大性能
A能够批改B里的办法,办法的重写
接口和接口的关系
继承关系,而且是多继承
--interface Inter01 extends Inter02,Inter03
其中Inter01是子接口Inter02,Inter03父接口
子接口的劣势:同时应用本人和父接口的所有性能。
--class InterImpl1 implements Inter1
InterImpl1 须要重写Inter1里所有的形象办法,否则就是一个形象的实现类。
类和接口的关系
实现关系,能够多实现
--class Aimplements B,C
其中A是实现类,B和C都是接口
对A的要求:
重写B和C中应用的所有的形象办法。
--class A extends B implements C,D
A能够应用父类B的所有性能和接口C D 的所有性能
A必须重写所有的形象办法。否则A蕴含没重写的形象办法就是一个形象的类