java封装 继承 多态和异常

封装

作用:

可以隐藏信息,提高安全性高,进行赋值与取值,进行封装数据

封装的优点:

封装业务的优点:

一 减少偶合 ,良好的封装能够减少偶合,提高系统独立性

二 可重用性 封装重复的代码

封装数据的优点:

一 精确控制

二 安全性 隐藏信息实现细节,降低了构建大型系统的风险

封装的步骤

第一步 修改属性的可见性来限制堆属性的访问

第二步 堆每个值属性提供对外访问的方法创建一对赋值方法

实现封装:封装实例

set调用静态常量池

修饰符

访问修饰符

可以使用访问控制符来保护对类,变量,方法和构造方法的访问

default (缺省,什么都不写)在同一包内可见不使用任何修饰符 使用对象 类 接口 变量 方法

private 在同一类内可见,使用对象,变量,方法,注意不能修饰类(外部类)

public 对所以类可见,使用对象 类 接口 变量 方法

protected 对同一包内的类和所有子类可见,使用对象,变量方法不能修饰类,外部类

完全限定名:包名+类名

非访问修饰符

static修饰符 静态修饰符,用来修饰类方法和类变量

final 修饰符,方法,变量,final修饰的类不能够被继承,修饰的方法不能被继承类重新定义 修饰的变量为常量不能修改

abstract 用来修饰抽象类和抽象方法

被static修饰的变量一般是不发生变化的但可以发生变化 static是类级别的随着类加载时一起被加载到内存当中 被static修饰的方法不希望被重写

static final 静态常量不可被修改(常量名全大写)必须在声明时赋值只可被赋值一次

面试题 

在静态方法里面不可以使用非静态资源 被final修饰过的变量不能在被赋值 被final修饰过的方法不能在被重写但可以重写别人得到的 被final修饰过的类不能被继承但可以继承别人

继承

继承是java面向对象编程技术的一块基,它允许创建分等级层次的类

作用

子类用有父类的属性和方法 减少冗余提高复用性后期维护度高

继承关键词

class-定义类 interface-定义接口 extends-继承父类(单继承)super(父类的对象)

implements-实现接口(多实现)

特点

子类拥有父亲非pivate的属性方法

子类可以拥有自己的属性和方法即子类可以对父类进行扩展

子类可以用自己 方式实现父类的方法 提高了类之间的耦合性

继承的缺点,耦合度高会造成代码之间的练习越紧密代码独立性越差

java的继承是单继承 但是可以多代继承

双亲委派

层级高的先运行

先静态在按照层级逐次运行

抽象类和接口

抽象类在繁杂的类信息中把关键信息拿出来组合一个新的简洁大方的类

抽象类的特性

抽象类不能被实例化

由于抽象类不能被实例,所以必须被继承才能被使用抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口

抽象类的关键字;abstract

抽象有构造方法但无法创建对象

抽象类方法和普通方法

抽象类方法没有方法体

普通方法有方法体

抽象类不能被实例化但是可以创建一个引用变量,其类别是一个抽象类,指向非抽象的子类实例

普通类可以被实例化

重写@Override  Overlode重载

重写和重载的区别

重写是对父类的代码进行一次内容的重写 不在同一个类中方法名返回值阐述列表必须一致

重载在同一类中方法名相同 参数列表不同

抽象类的构造方法是存在可以运行的,但是jvm中取消了最后一步创建对象的功能

抽象类和抽象方法

抽象类

一个抽象类中有零到多个抽象方法

抽象类不能创建对象所以希望有子类否则将没有意义

抽象类里有构造函数且可以运行但没有创建对象的功能

抽象方法

抽象类是可以继承抽象类的

非抽象类子类必须重写抽象父类的抽象方法

抽象子类可重写可不重写

 所有抽象方法必须重写

抽象方法必须在抽象类中

抽象方法没有方法体以分号结尾

接口

在java编程语言中是一个抽象类型,是抽象方法的集合,接口用interface声明一个类通过继承接口的方法从而来继承接口的抽象方法

接口并不是类 编写接口的方法和类的很相似,但是它们属于不同的概念类描述过对象和属性和方法接口则包含要实现的方法 接口无法被实例化但是可以实现

接口与类的区别

接口不能用于实例化对象

接口没有构造方法

接口中所有的方法必须是抽象的方法

接口不能包含承轩变量除了static和final变量

接口不是被类继承了而是要被类实现

接口支持多继承

java中的接口

属性全部都是静态常量

方法都是全局抽象方法

无构造方法

一个类可以实现多个接口,非接口类实现接口时必须实现接口的全部方法

抽象类利于代码复用,接口利于代码维护

多态和异常

多态 

同一个行为具有多个不同表现形式或形态的能力,就是同一个接口,使用不同的实例而执行不同操作,就是同一个事件发生在不同的对象上产生不同的结果

多态的优点

1,消除类型之间的耦合性(子类和父类)2,可替换性3,可扩充性4,接口性5,灵活性6,简化性

多态存在的三个条件,1继承,2,重写,3父亲所引用指向子类对象

向上转型(隐式,自动类型转换)

向上转型 父类的引用指向子类对象

自动进行类型不全 是小类型到大类型的转换

instanceof对类型的判断

对象必须是有继承关系的两个类型

对象的类型必须和insfanceof后面的参数所指定的类在上下级有继承关系

向下转型(强制类型转换)

向下转型:将一个指向子类对象的父类引用赋给一个子类的引用

即父类类型转换为子类类型,需强制类型转换,是大类型转换到小类型的自动转换(存在风险,溢出)

语法上在向下转型的过程中,如果没有转换为真实子类类型,会出现类型转换异常

异常

异常是阻止当前方法或作用域继续执行的问题

异常错误类型

1用户操作错误(用户输入非法数据)

2程序错误

3物理错误

三种类型的异常

1检查性异常

2运行时异常

3错误

Exception类的层次

所有异常是从java.long.Exception类继承的子类

Exceotion类是Throwable类的子类,除了Exception类外还有Error子类

Error不会被捕获错误

内置异常

ArraylndexOutofBoundsException 数组下标越界

NullpointerException 尝试访问null对象成员

classnotFoundException 不能加载所需的类

classCastexception 对象强制类型转换出错

捕获异常

try和catch关键字

try{

程序代码

}catch(Exception Name el){

catch块

}

try和catch可以捕获异常try/catch代码块放在异常可能发生的地方

finally关键字无论是否异常 finall代码块中的代码总会被执行

在finally代码块中,可以运行清理类型等收尾后性质的语句

抛出异常

throws/throw关键字

throw生成并抛出异常 位于方法体内部,可作为单独语句抛出一个异常对象且只能有一个

throws声明方法内抛出了异常 必须跟在方法参数列表后面不能单独作用,声明抛出异常类型可以跟很多异常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值