第四章:面向对象(下)

4.1类的继承

4.1.1 继承的概念

通过继承可以使多种事物之间形成一种关系体系,指在一个现有类的基础上构建一个新的类,新构建的称为子类,现有的称作父类,子类自动拥有父类所有可继承的属性和方法。

语句:

 class 子类  extends  父类;

注意:类只支持单继承,不允许多重继承,只能有一个父类。一个类的父类可以再去继承另外的父类。

4.1.2 重写父类方法

在子类中重写的方法后,子类对象将无法访问父类重写方法。

格式:

   super.成员变量;

   super.成员方法([参数]);

使用super调用父类的构造方法:

super([参数]);

4.2 final关键字

用于修饰类、变量和方法,有“无法改变的“和”最终“Definitely含义。

特性:
final修饰的类不能被继承。
方法不能被子类重写

4.3.1 抽象类

不含方法体的方法为抽象方法。

语法:

 abstract void 方法名();

抽象类是不可以被实例化的,不可以被调用,用来做父类。

Abstract不可用来修饰构造方法和属性,不可同时和private,static、final使用。

4.3.2 接口

如果一个抽象类中的所有方法都是抽象的,则可将这个类定义为接口

语法:

 interface 接口名[];

通过implements可实现多个接口,用逗号隔开。

语法:

 class  类名  implements  [接口1,接口2];

一个接口可以通过extends继承多个接口,在继承另一个类时还可以实现接口,此时extends位于implements之前。

4.4 多态

4.4.1 多态概述

4.4.2 对象的类型转换

Instanceof,可判断一个对像是否为某个类(或接口)的实例或子类实例。

语法:

 对象  instanceof 类(或接口);

4.4.3 object类

Object类的 to String()方法:

getclass().getName()+“@“+integer.toHexString (hashcode();

4.4.4 匿名的内部类

格式:

  new 父类 (参数列表)或父接口(){

    匿名类内部类实现部分

  }

4.5.1什么是异常

异常时程序级别的,指运行时异常。

异常处理:即使在程序运行时发生错误,也能正常结束。

默认处理方式:先显示错误的信息,然后终止程序。

  1. 错误类(Error)虚拟机内部错误产生的异常。

  2. 标准异常类:除数为0或下标范围超出。

4.5.2 try…catch(异常捕获)和finally(资源释放)

语法

 try{
    程序代码块
    }catch(Excrption type(Exception类及其子类)e){
    //对Exception type的处理
    }

4.5.3 throws关键字

格式:

 修饰符  返回值类型  方法名(参数)throws  Exception type 1 {

    }

Thows后跟方法可能产生的异常,可与if配合使用

4.5.4 运行时异常与编译时异常(checked)

编译时异常:Exception类中除了Runtime Exception类及其子类都是编译时异常,特点:Java编译器会对其检查。

异常方法:使用try….catch语句对异常进行捕获。使用throws关键字声明抛出异常,调用者对其处理。

运行时异常:Runtime Exception类及其子类都是运行时异常,特点:运行时Java编译器不会对其检查,逻辑错误。

4.5.5自定义异常

自定义的异常类必须继承自Exception或其子类,在构造方法中使用super()语句调用Exception的构造方法。

Throw关键字用于在方法中声明抛出异常的实例对象。

语法:

  throw  Exception 异常对象;

4.6包

提供了类的多层命名空间

1.包实际上是一组类组合的集合,也称之为类库。

2.包的层次结构与文件目录结构是相似的,目的是Java的合法标识符,一般用小写字母单词表示。

3.jave语言提供了一些常用的基本类包,如Java.io和Java.lang

4.6.1 包的定义与使用

通过申明包的方式对Java类定义目录。

Java中的包是专门用来存放类的,通常功能相同的类存放在相同的包中,在声明包时,使用package语句。

要注意的是,包的声明只能位于Java源文件的第一行。(若缺省为无名包)

当编译一个声明了包的Java源文件,需要使用命令生成与包名对应的目录。
其中,-d用来指定生成的类文件的位置,表示在当前目录整行命令表示生成带包目录的,class文件并存放在当前目录下,当然,生成的类文件,还可以存放在其他目录下,只需要将用其他路径替换即可。

4.6.2 import语句

调用不在同一个包中的两个类

 on.itcast.Student  stu=new cn.itcast.student();

在实际开发中,定义的类都是含有包的。

为了简化代码,提供了import关键字,使用import可以在程序中一次导入某个指定包下的类。

 Import  包名.类名;

需要注意的是、import通常出现在package语句之后,类定义之前。

  1. java.lang:包含Java语言的核心类,如String、Math、System和Thread类等。

  2. java.util:包含Java中大量工具类、集合类等,例如Arrays、List、set等。

  3. java.net:包含Java网络编程相关的类和接口。

  4. java.io:包含了Java输入、输出有关的类和接口。

  5. Java.awt:包含了用于构建图形界面(GUI)的相关类和接口。

4.6.3 给Java应用打包

在JDK中提供了一个Jar命令,使用这个命令能够将这些类打包成一个文件。扩展名为:.Jar,它是一种压缩文件,独立与任何操作系统平台。

Java应用打包有很多好处。

  1. 安全

  2. 节省空间

  3. 可移植性

-c代表创建归档的文件

-v代表在标准输出中生成详细输出。

-f代表指定归档文件名。

4.7访问控制

针对类、成员方法和属性提供了四种访问级别。

分别是private(私有)default(缺省,默认)protected(受保护)和public(公共)

由大到小依次列出:

Private——default——protected——public

  1. 同一类(都能访问)

  2. 同一包(私有访问不到)

  3. 不同包(只能访问公有制)

1.Private(类访问级别):如果类的成员被Private访问控制符来修饰,则这个成员只能被该类的其他成员访问,其他类无法直接访问,类的良好封装就是通知Private关键字来实现的。
4. Default(包访问级别):如果一个类或者类的成员不使用任何访问控制符修饰,则称它为默认访问控制级别,这个类或者类的成员只能被本包中的其他类访问。
3. Protected(子类访问级别):如果一个类的成员被protected访问控制符修饰,那么这个成员既能被同一包下的其他类访问,也能被不同包下该类的子类访问。
4. Public(公共访问级别):这是一个最宽松的访问控制级别,如果一个类或者类的成员别public访问控制符修饰,那么这个类或者类的成员能被所有的类访问,不管访问类与被访问类是否在同一包中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值