Java第4讲精ppt课件

上传人:资****亨 文档编号:145849730 上传时间:2020-09-23 格式:PPT 页数:24 大小:663.50KB
返回 下载 相关 举报
Java第4讲精ppt课件_第1页
第1页 / 共24页
Java第4讲精ppt课件_第2页
第2页 / 共24页
Java第4讲精ppt课件_第3页
第3页 / 共24页
Java第4讲精ppt课件_第4页
第4页 / 共24页
Java第4讲精ppt课件_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《Java第4讲精ppt课件》由会员分享,可在线阅读,更多相关《Java第4讲精ppt课件(24页珍藏版)》请在金锄头文库上搜索。

1、3.6 static关键字,3.6.1 静态变量 在一个Java类中,可以使用static关键字来修饰成员变量,该变量被称作静态变量 静态变量被所有实例共享,可以使用“类名.变量名”的形式来访问 static关键字只能用于修饰成员变量,不能用于修饰局部变量,否则编译会报错,下面的代码是非法的。,3.6 static关键字,3.6.1 静态变量,例程3-14的Student类中定义了一个静态变量schoolName,用于表示学生所在的学校,它被所有的实例所共享。由于schoolName是静态变量,因此可以直接使用Student.schoolName的方式进行调用,也可以通过Student的实例对

2、象进行调用,如stu2.schoolName。在第8行代码将变量schoolName赋值为“传智播客”,通过运行结果可以看出学生对象stu1和stu2的schoolName属性均为“传智播客”。,3.6 static关键字,3.6.2 静态方法 被static关键字修饰的方法称为静态方法 同静态变量一样,静态方法可以使用“类名.方法名”的方式来访问,也可以通过类的实例对象来访问。 在一个静态方法中只能访问用static修饰的成员,原因在于没有被static修饰的成员需要先创建对象才能访问,而静态方法在被调用时可以不创建任何对象。,3.6 static关键字,3.6.2 静态方法,例程3-15的

3、Person类中定义了静态方法sayHello(),在第8行代码处通过“Person.sayHello()”的形式调用了静态方法,由此可见静态方法不需要创建对象就可以调用。,3.6 static关键字,3.6.3 静态代码块 在Java类中,使用一对大括号包围起来的若干行代码被称为一个代码块,用static关键字修饰的代码块称为静态代码块 当类被加载时,静态代码块会执行,由于类只加载一次,因此静态代码块只执行一次 在程序中,通常使用静态代码块来对类的成员变量进行初始化,3.6 static关键字,3.6.3 静态代码块,从图3-19所示的运行结果可以看出,程序中的两段静态代码块都执行了。在命令

4、行窗口输入“java Example14”后,虚拟机首先会加载类Example14,在加载类的同时就会执行该类的静态代码块,紧接着会调用main()方法。在该方法中创建了两个Person对象,但在两次实例化对象的过程中,静态代码块只执行一次,这就说明类在第一次使用时才会被加载,并且只会加载一次,本章小结,本章详细介绍了面向对象的基础知识,包括什么是面向对象、类和对象之间的关系、类的封装与使用、构造方法的定义与重载、this关键字、static关键字、内部类等 重点在于面向对象的编程思想、类和对象、类的封装、构造方法以及this关键字的使用,大家应该多思考,深刻领会面向对象的好处 熟练掌握好这些

5、知识,有助于学习下一章的内容。深入理解面向对象的思想,对以后的实际开发也是大有裨益的,第四讲 面向对象(下),类的继承 final关键字 多态,接口 异常 包的定义与使用,4.1 类的继承,4.1.1 继承的概念 程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。 在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法。在程序中,如果想声明一个类继承另一个类,需要使用extends关键字,接下来通过一个案例来学习子类是如何继承父类的。,4.1 类的继承,4.1.1 继

6、承的概念 程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。 在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法。在程序中,如果想声明一个类继承另一个类,需要使用extends关键字,接下来通过一个案例来学习子类是如何继承父类的。,4.1 类的继承,4.1 类的继承,4.1.1 继承的概念 在类的继承中,需要注意一些问题,具体如下: 1、在Java中,类只支持单继承,不允许多重继承,也就是说一个类只能有一个直接父类,例如下面这种情况是不合法的。 2、多个类可以继承

7、一个父类,例如下面这种情况是允许的。,4.1 类的继承,4.1.1 继承的概念 在类的继承中,需要注意一些问题,具体如下: 3、在Java中,多层继承是可以的,即一个类的父类可以再去继承另外的父类,例如C类继承自B类,而B类又可以去继承A类,这时,C类也可称作A类的子类。下面这种情况是允许的。,4.1 类的继承,4.1.1重写父类方法 在继承关系中,子类会自动继承父类中定义的方法,但有时在子类中需要对继承的方法进行一些修改,即对父类的方法进行重写。需要注意的是,在子类中重写的方法需要和父类被重写的方法具有相同的方法名、参数列表以及返回值类型。,4.1 类的继承,4.1.1重写父类方法 从例程4

8、-3的运行结果可以看出,当子类重写父类的方法后,子类对象将无法访问父类被重写的方法,为了解决这个问题,在Java中专门提供了一个super关键字用于访问父类的成员。例如访问父类的成员变量、成员方法和构造方法。接下来分两种情况来学习一下super关键字的具体用法。 1、使用super关键字调用父类的成员变量和成员方法。具体格式如下:,4.1 类的继承,4.1 类的继承,4.1.1重写父类方法 2、使用super关键字调用父类的构造方法。具体格式如下:,4.1 类的继承,4.1.1重写父类方法 例程4-4中在实例化Dog对象时一定会调用Dog类的构造方法。从运行结果可以看出,Dog类的构造方法被调

9、用时父类的构造方法也被调用了。需要注意的是,通过super调用父类构造方法的代码必须位于子类构造方法的第一行,并且只能出现一次。 将例程4-4第11行代码去掉,再次编译程序会报错:,4.1 类的继承,4.1.1重写父类方法 出错的原因是,在子类的构造方法中一定会调用父类的某个构造方法。这时可以在子类的构造方法中通过super指定调用父类的哪个构造方法,如果没有指定,在实例化子类对象时,会自动调用父类无参的构造方法。 为了解决上述程序的编译错误,可以在子类中显示地调用父类中已有的构造方法,当然也可以选择在父类中定义无参的构造方法,现将例程4-4中的Animal类进行修改,如例程4-5所示。,4.

10、2 final关键字,final关键字可用于修饰类、变量和方法,它有“这是无法改变的”或者“最终”的含义,因此被final修饰的类、变量和方法将具有以下特性: 1、final修饰的类不能被继承。 2、final修饰的方法不能被子类重写。 3、final修饰的变量(成员变量和局部变量)是常量,只能赋值一次。,4.2 final关键字,4.2.1 final关键字修饰类 Java中的类被final关键字修饰后,该类将不可以被继承,也就是不能够派生子类。接下来通过一个案例来验证,如例程4-6所示。,4.2 final关键字,4.2.2 final关键字修饰方法 当一个类的方法被final关键字修饰后

11、,这个类的子类将不能重写该方法。接下来通过一个案例来验证,如例程4-7所示。,这是因为Animal类的shout()方法被final所修饰。由此可见,被final关键字修饰的方法为最终方法,子类不能对该方法进行重写。正是由于final的这种特性,当在父类中的定义某个方法时,如果不希望被子类重写,就可以使用final关键字修饰该方法。,4.2 final关键字,这是因为使用final关键字修饰成员变量时,虚拟机不会对其进行初始化。因此使用final修饰成员变量时,需要在定义变量的同时赋予一个初始值,下面将第2行代码修改为: final String name = 李芳; / 为final关键字修饰的name属性赋值,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号