类和对象、继承接口、异常学习总结

一.类与对象

类(class):对一切事物的描述,抽象的,概念上的定义(eg:人);
对象(object):实际存在的个体(eg:李华);

二.面向对象三大特征:

封装:是面向对象的特征之一,是对象和类概念的主要特性。就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
封装性的体现

1.将类的属性私有化(private),同时提供公共的方法来获取(get)和设置(set)对类的属性私有化
2.不对外暴露私有的方法
3.单例模式。

继承:面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。

体现:class A(子类) extends B(父类){ … }

多态:同一个行为具有多个不同表现形式或形态的能力。是指一个类实例(对象)的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。
1.子类对象的多态性,父类的引用指向子类对象
2.虚拟方法调用:通过父类的引用指向子类的对象实体,当调用方法时,实际上执行的是子类重写父类的方法

多态性的前提:
1,要有类的继承性
2,要有子类对父类的方法的重写

  • 注意点: 程序分为编译状态和运行状态, 对于多态性来说,编译时,“看左边”,将此引用变量理解为父类的类型;
    运行时,“看右边”,关注于真正对象的实体(子类的对象),那么执行的方法就是子类重写的;

三.接口

1.接口语法

interface 接口名{
// 静态常量,抽象方法
}
说明:
① 声明一个接口使用关键字interface,而不是class,class是用来声明一个类,class和interface是属于同一个级别的。
② 接口里面存放的内容只能是静态常量、抽象方法,其它带方法体的方法或普通的属性都不能放到接口里面。
③ 接口不能实例化。

2.接口的特点

(1)接口中只能放静态常量、抽象方法。

(2)java接口是对功能的扩展(父类和抽象类中一般都存放的是通用的属性和方法,我们一般把扩展的功能或特有的功能放到接口里,而不放在父类或抽象类中)。

(3)通过实现接口,java类可以实现多实现(一个类可以实现多个接口,即一个类可以有多种功能)。

(4)一个类只能继承一个父类,即extends关键字后面只能跟一个父类,但可以通过implements关键字实现,多个接口。

(5)接口与接口之间可以通过extends关键字来产生继承关系(即接口继承接口使用关键字extends)。

3.接口与抽象类的区别

(1)抽象类与实现类之间是一种继承关系,也就是说如果采用抽象类的方式,则父类与子类在概念上应该是相同的。

(2)接口和实现类在概念上不要求相同,接口只是抽取相互之间没有关系的类的共同特征,而不去关注类之间的关系,它可以使没有层次关系的类具有相同的行为。

(3)抽象类是对一组具有相同属性和行为的逻辑上有关系的事物的一种抽象,而接口是对一组具有相同属性和行为的逻辑上不相关的事物的一种抽象。

(4)对于接口和抽象类的选择,反映出设计人员看待问题的不同角度。抽象类用于一组相关的事物,表示的是"is-a"(继承)的关系,而接口用于一组不相关的事物,表示的是"like-a"(具备)的关系。

四.异常

1.异常分类
我们平常说的异常就是指Exception,因为这类异常一旦出现,我们就要对代码进行更正,修复程序。
异常(Exception)的分类:

  • 编译时期异常:checked异常。在编译时期,就会检查,如果没有处理异常,则编译失败。(如文件找不到异常)
    运行时期异常:runtime异常。在运行时期,检查异常.在编译时期,运行异常不会被编译器检测到(不报错)。(如数组索引越界异常,类型转换异常)。程序员应该积极避免其出现的异常,而不是使用try…catch处理,因为这类异常很普遍,若都使用try…catch或throws处理可能会对程序的可读性和运行效率产生影响。
    列举一些常见的异常
java.lang.nullpointerexception
//异常的解释是"程序遇上了空指针"
java.lang.classnotfoundexception
//-异常的解释是"指定的类不存在"
java.lang.arithmeticexception
//-这个异常的解释是"数学运算异常"
java.lang.arrayindexoutofboundsexception
//-异常的解释是"数组下标越界"
java.lang.illegalargumentexception`在这里插入代码片`
//-这个异常的解释是"方法的参数错误"
java.lang.illegalaccessexception
//-这个异常的解释是"没有访问权限"
算术异常类:ArithmeticExecption
空指针异常类:NullPointerException
类型强制转换异常:ClassCastException
数组负下标异常:NegativeArrayException
数组下标越界异常:ArrayIndexOutOfBoundsException
违背安全原则异常:SecturityException
文件已结束异常:EOFException
文件未找到异常:FileNotFoundException
字符串转换为数字异常:NumberFormatException
操作数据库异常:SQLException
输入输出异常:IOException
方法未找到异常:NoSuchMethodException
  • 异常的处理机制
    捕获机制:try-catch-finally

    try{}语句块:里面是要检测的Java代码,可能会抛出异常,也可能会正常运行

    catch(异常类型){}块:是当Java运行时,系统接收到try块中所抛出异常对象时,会寻找能处理这一异常catch块来进行处理,注意异常类型需要与try{}语句块可能抛出的异常要匹配。可以有多个catch块。不同的异常类型对应不同的处理代码。

    finally{}语句块:不管系统有没有抛出异常,都会去执行,一般用来释放资源。除了在之前执行了System.exit(0);    异常的抛出机制
    
    throw:手动抛出异常,一般由程序员在方法内抛出Exception的子类异常。
    
    throws:声明在方法名之后,告诉调用者,该方法可能会抛出异常,也就是说异常发生后会抛给调用者,由调用者处理异常## 标题    感想:多回顾,多总结,多练习。
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值