面向对象

三大特色

封装性,把相干的数据封装成一个“类”组件

继承性,是子类主动共享父类属性和办法,这是类之间的一种关系

多态,加强软件的灵活性和重用性


-

java语言的最根本单位,是一类事物的形象(能够了解为模板或者图纸)

  1. 如果类里什么都没有写,起码会暗藏一个无参结构。
  2. 无参结构不是时时刻刻都有,如果只提供含参结构,无参结构就没了
  3. 当被实例化的时候构造方法就会被触发。
  4. 类里能够提供多个构造方法,不便外界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.部分代码块

--作用:用来控制代码块的作用范畴

总结:

作用

结构代码块--提取办法中的共性,高聚合

部分代码块--控制变量的作用范畴

地位

  1. 结构代码块--在类里办法外。

部分代码块--在办法里。

触发工夫点

结构代码块--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蕴含没重写的形象办法就是一个形象的类