关于java:面向对象

6次阅读

共计 4191 个字符,预计需要花费 11 分钟才能阅读完成。

面向对象

三大特色

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

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

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


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

正文完
 0