北大青鸟:《Java教程》课程教学资源(PPT课件讲稿)第四章 类的高级特性

北大青鸟 c 第四章 类的高级特性 Version 3.0 CHA
Version 3.0 第四章 类的高级特性

回顾 类是对象的抽象,将对象的属性和行为抽 象为类中的数据和方法。 extends关键字用于继承类。 super关键字用来解决如何直接访问或初始 化从父类继承来的属性。 构造函数名称与类的名称相同,且没有返 回类型。 方法重载和方法覆盖是Java实现多态性机制 的方式。 北大青鸟
2 回顾 • 类是对象的抽象,将对象的属性和行为抽 象为类中的数据和方法。 • extends 关键字用于继承类。 • super关键字用来解决如何直接访问或初始 化从父类继承来的属性。 • 构造函数名称与类的名称相同,且没有返 回类型。 • 方法重载和方法覆盖是Java实现多态性机制 的方式

目标 掌握类的静态成员 掌握fina关键字用法 掌握抽象类的定义和用法 ·掌握接口的定义和用法 ·掌握高级访问控制 了解内部类的概念 北大青鸟
3 目标 • 掌握类的静态成员 • 掌握final关键字用法 • 掌握抽象类的定义和用法 • 掌握接口的定义和用法 • 掌握高级访问控制 • 了解内部类的概念

类的静态成员 用 static修饰符修饰 凤是变 法或代 码块 类中的静态变量、方法或代码块属于类,而 不属于某个特定的对象。 类的静态成员可以与类的名称一起使用,而 无需创建类的对象 静态变量或方法也称为类的变量或方法。 北大青鸟
4 类的静态成员 • 类中的静态变量、方法或代码块属于类,而 不属于某个特定的对象。 • 类的静态成员可以与类的名称一起使用,而 无需创建类的对象。 • 静态变量或方法也称为类的变量或方法。 用static修饰符修饰, 可以是变量、方法或代 码块

静态变量。 声明为 Istatic的变量实质 上就是全局变量 不管创建了类的多少实例,整个类中静态变 量的副本只有一个 ·引用静态变量的方法: class staticDemo i static int x= 0 通过引用类的任一实例| staticDemd0《x+; 通过类的名称 StaticDemo d1 new i staticDemo d1 new staticDemooi staticDemo d2= new l staticDemo d2 new staticDemo()i d1.x=100; 通过 staticDemo.x=100; d2.x=200; 不是 StaticDemox=207通过类名访问 testvariable d1 xitestVariable StaticDemo. xi 北大青鸟
5 静态变量 • 不管创建了类的多少实例,整个类中静态变 量的副本只有一个。 • 引用静态变量的方法: - 通过引用类的任一实例 - 通过类的名称 class StaticDemo { static int x = 0; StaticDemo(){x++;} } StaticDemo d1 = new StaticDemo(); StaticDemo d2 = new StaticDemo(); d1.x = 100 ; d2.x = 200; testVariable = d1.x; 通过类实例访问 不是一个好方法 StaticDemo d1 = new StaticDemo(); StaticDemo d2 = new StaticDemo(); StaticDemo.x = 100; StaticDemo.x = 200; testVariable = StaticDemo.x; 声明为static的变量实质 上就是全局变量 通过类名访问

静态方法 与静态方法相关的几个要点 类的静态方法只能访问其他的静态成员 静态方法没有this 静态方法不能被覆盖为非静态方法 class staticFun i s七a七icin七工 class staticTest int ji static void testo t static void set j=x;//出错 Syste out prill class Statice extends StaticTest i void test(){}//出错 不該膝
6 静态方法 • 与静态方法相关的几个要点: –类的静态方法只能访问其他的静态成员 –静态方法没有this –静态方法不能被覆盖为非静态方法 class StaticFun { static int i = 10; int j; static void setValue(int x) { j=x;//出错 System.out.println(" "+ i); } } 不能访问非静态变量j, 可以访问静态变量i class StaticTest { static void test() { } } class Staticex extends StaticTest{ void test() {}//出错 }

静态块 如果需要通过计算来初始化静态变量,可以 声明一个静态块 静态块仅在该类被加载时执行一次。 只能初始化类的静态数据成员。 class TryInitialization i static int[] values= new int[10];//静态数组成员 static i for (int 1=0; i<values. length; i++) values[i] =(int)(1000*Math. random()i 北大青鸟
7 静态块 • 如果需要通过计算来初始化静态变量,可以 声明一个静态块。 • 静态块仅在该类被加载时执行一次。 • 只能初始化类的静态数据成员。 class TryInitialization { static int[] values = new int[10]; //静态数组成员 static { for(int i=0; i<values.length; i++) values[i] = (int)(100.0*Math.random()); } }

fina关键字na类 · final修饰符可应用于类、方法和变量。 ·fina在应用于类、方法和变量时意义是不同 的,但本质是一样的:fna表示不可改变 ·声明为fna的类不能被继承。 fina类示例 final class festFinal java. lang String in七i=7 int 3=li void fo[] class Further tends TestFinal t final类不能被继承 北大青鸟
8 final 关键字/final类 • final 修饰符可应用于类、方法和变量。 • final在应用于类、方法和变量时意义是不同 的,但本质是一样的:final表示不可改变。 • 声明为final的类不能被继承。 • final 类示例: java.lang.String final class TestFinal { int i = 7; int j = 1; void f() {} } class Further extends TestFinal {} final类不能被继承

fina方法 在方法声明中使用fna关键字向编译器表 明子类不能覆盖此方法。 在声明类中,一个fina方法只被实现一次。 如果一个类为fina类,那么它的所有方法 都为隐式的fina方法。 class TestFinal final void foIl class Further extends TestFinal i fina Void fQ( fina方法不能 被覆盖 大青鸟
9 final 方法 • 在方法声明中使用final 关键字向编译器表 明子类不能覆盖此方法。 • 在声明类中,一个 final 方法只被实现一次。 • 如果一个类为 final 类,那么它的所有方法 都为隐式的 final 方法。 class TestFinal { final void f() {} } class Further extends TestFinal { final void f(){} } final方法不能 被覆盖

fina变量 一个变量可以声明为 Final,这样做的目的是 阻止它的内容被修改。 声明fna变量后,只能被初始化一次,然后 就不能对其值进行修改 个fina变量实质上是一个常量。 c1 ass Fina⊥Demo{ public static void main(string args[])t final int nochange 20 noChange 关 30; fina变量不能被 修改 北大青鸟
10 final 变量 • 一个变量可以声明为final,这样做的目的是 阻止它的内容被修改。 • 声明final变量后,只能被初始化一次,然后 就不能对其值进行修改。 • 一个final变量实质上是一个常量。 class FinalDemo { public static void main(String args[]){ final int noChange = 20; noChange = 30; } } final变量不能被 修改
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 北大青鸟:《Java教程》课程教学资源(PPT课件讲稿)第三章 类和对象.ppt
- 北大青鸟:《Java教程》课程教学资源(PPT课件讲稿)第二章 Java 编程基础.ppt
- 北大青鸟:《Java教程》课程教学资源(PPT课件讲稿)第十一章 线程.ppt
- 北大青鸟:《Java教程》课程教学资源(PPT课件讲稿)第十章 Applet介绍.ppt
- 北大青鸟:《Java教程》课程教学资源(PPT课件讲稿)第一章 Java语言概述.ppt
- 《计算机网络原理》课程教学资源(参考教材,第四版)PDF电子书(共十章,扫描版).pdf
- 《C程序设计题解与上机指导》(第二版)(谭浩强).pdf
- 苏州大学:《编译原理》课程教学资源(PPT课件讲稿)第七章 编译程序.ppt
- 苏州大学:《编译原理》课程教学资源(PPT课件讲稿)第六章 语法制导译.ppt
- 苏州大学:《编译原理》课程教学资源(PPT课件讲稿)第五章 符号表.ppt
- 苏州大学:《编译原理》课程教学资源(PPT课件讲稿)第四章 语法分析.ppt
- 苏州大学:《编译原理》课程教学资源(PPT课件讲稿)第三章 词法分析.ppt
- 苏州大学:《编译原理》课程教学资源(PPT课件讲稿)第二章 文法和语言.ppt
- 苏州大学:《编译原理》课程教学资源(PPT课件讲稿)第一章 语言处理程序的发展过程.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)总复习.ppt
- 《软件设计师历年试题分析与解答》PDF电子书.pdf
- 《VLAN、TRUNK、VTP和VLAN间路由的使用和配置》实验1.doc
- 《计算机结构与组成》(英文版)CS61C:Machine Structures.ppt
- excel2007表格制作培训教程案例_销售业绩统计表.xlsx
- excel2007表格制作培训教程案例_股市行情数据透视表.xlsx
- 北大青鸟:《Java教程》课程教学资源(PPT课件讲稿)第五章 异常和垃圾收集.ppt
- 北大青鸟:《Java教程》课程教学资源(PPT课件讲稿)第六章 GUI编程.ppt
- 北大青鸟:《Java教程》课程教学资源(PPT课件讲稿)第七章 AWT事件模型.ppt
- 北大青鸟:《Java教程》课程教学资源(PPT课件讲稿)第八章 图形编程.ppt
- 北大青鸟:《Java教程》课程教学资源(PPT课件讲稿)第九章 Swing.ppt
- 《C语言程序设计》课程教学资源(电子教案)第一讲 C基础与数据结构.doc
- 《C语言程序设计》课程教学资源(电子教案)第二讲 函数.doc
- 《C语言程序设计》课程教学资源(电子教案)第三讲 循环结构设计.doc
- 《C语言程序设计》课程教学资源(电子教案)第四讲 指针.doc
- 《C语言程序设计》课程教学资源(电子教案)第五讲 数组.doc
- 《C语言程序设计》课程教学资源(电子教案)第六讲 文件.doc
- 《C语言程序设计》课程教学资源(电子教案)第七讲 结构体与共用体.doc
- 《C语言程序设计》课程教学资源(电子教案)第八讲 综合设计.doc
- 《C语言程序设计》课程教学资源(电子教案)第九讲 选择结构设计.doc
- 《C语言程序设计》课程教学资源(电子教案)第十讲 顺序结构设计.doc
- 《C语言程序设计》课程教学资源(电子教案)第十一讲 预处理命令.doc
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第一章 C语言概论.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第二章 程序的灵魂—算法.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第三章 C语言的数据类型、运算符与表达式.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第四章 顺序结构程序设计.ppt