JAVA语言程序设计第五章.ppt

上传人:牧羊曲112 文档编号:5436222 上传时间:2023-07-06 格式:PPT 页数:36 大小:287.49KB
返回 下载 相关 举报
JAVA语言程序设计第五章.ppt_第1页
第1页 / 共36页
JAVA语言程序设计第五章.ppt_第2页
第2页 / 共36页
JAVA语言程序设计第五章.ppt_第3页
第3页 / 共36页
JAVA语言程序设计第五章.ppt_第4页
第4页 / 共36页
JAVA语言程序设计第五章.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《JAVA语言程序设计第五章.ppt》由会员分享,可在线阅读,更多相关《JAVA语言程序设计第五章.ppt(36页珍藏版)》请在三一办公上搜索。

1、1,第五章 Java 高级语言特征,静态变量、方法与初始化程序块 final 关键字抽象类 Interface package访问控制内部类其它,2,类变量(static/class variable),在该类所有实例之间是共享的。在加载该类时,只分配一次空间,并初始化。例:class Employee static int com;则运行时,,3,类变量(static/class variable),类变量可用来在实例之间进行通信或跟踪该类实例的数目。,例:public class Countprivate int serialNumber;private static int counte

2、r=0;public Count()counter+;serialNumber=counter;,4,类变量可以是public 或private对于public 类型的类变量,可以在类外直接用类名调用而不需要初始化。Public class StaticVarpublic static int number;public class Otherclasspublic void method()int x=StaticVar.number;,类变量(static/class variable),5,类(class/static)方法,可以直接被调用,而不需要生成任何实例public class

3、GeneralFunctionpublic static int addUp(int x,int y)return x+y;public calss UseGeneralpublic void method()int c=GeneralFunction.addUp(9,10);,6,静态初始化程序,没有存在于任何方法体中的静态语句块。在加载该类时执行且只执行一次。public Class StaticInitDemostatic int i=5;static System.out.println(“Static code:i=”+i+);public class Test public sta

4、tic void main(String args)System.out.println(“Main code:i=”+StaticInitDemo.i);,Static code:i=5Main code:i=6,7,Final 关键字,被定义成final的类不能有子类。例:final class Employee class Manager extends Employee 被定义成final 的成员方法不能被重写。被定义成final的成员变量不能改变。该变量实际上是常量,一般大写,并赋值。final int NUMBER=100;,8,抽象类,一个类如果只声明方法而没有方法的实现,则称为

5、抽象类。必须在声明中增加 abstract 关键字,在无方法体的方法前 也要加上abstract。Public abstract class Drawingpublic abstract void drawDot(int x,int y);public void drawLine(int x1,int y1,int x2,int y2)./调用drawDot()方法抽象类也可有普通的成员变量或方法。,9,抽象类,抽象类不能直接用来生成实例。一般可通过定义子类进行实例化。可以生成抽象类的变量,该变量可以指向具体的一个子类的实例。,Abstract class Employeeabstract v

6、oid raiseSalary(int i);class Manager extends Employeevoid raiseSalary(int i).,Employee e=new Manager();,10,接口 interface,Interface 是在抽象类概念的基础上演变而来的。一个interface所有成员方法都是抽象的,并且只能定义 static final 成员变量。,11,Interface 的含义,interface定义了一组行为的协议。两个对象之间通过这个协议进行通信。interface 不属于类层次结构。不相关的类可以实现相同的接口。,12,Interface 示例

7、,13,用implements代替extends声明子类,该子类中必须实现接口(及其超类)中的所有方法。例:interface SayHello void printMessage();class SayHelloImpl implements SayHellovoid printMessage()System.out.println(“Hello”);,实现interface,14,Interface的使用,Interface可以作为一种数据类型使用。如:,public class StockMonitor public void watchStock(StockWatcher watche

8、r,String tickerSymbol,double delta).,15,Interface 中注意问题,不能向interface定义中随意增加方法。public interface StockWatcher final String sunTicker=SUNW;final String oracleTicker=ORCL;final String ciscoTicker=CSCO;void valueChanged(String tickerSymbol,double newValue);void currentValue(String tickerSymbol,double new

9、Value);,public interface StockTracker extends StockWatcher void currentValue(String tickerSymbol,double newValue);,16,可以通过实现接口实现多重继承:一个类可只继承一个父类,并实现多个接口。interface I1;interface I2;class E.;class M extends E implements I1,I2 一个interface 可作为类名使用,实现多态。,接口 interface,Interface Human class Chinese implemen

10、ts Human class Japanese implements Human.Human e=new Chinese();Human e=new Japanese();,17,类分组 package 语句,包(package)是相关类与接口的一个集合,它提供访问控制与命名空间管理。Java平台中的类与接口都是根据功能以包组织的。包机制的好处:程序员容易确定包中的类是相关的,并且容易根据所需的功能找到相应的类。每个包都创建一个新的命名空间,因此不同包中的类名不会冲突。同一个包中的类之间有比较宽松的访问控制。,18,创建包,用package语句指定源文件中的类属于一个特定包:package 包

11、名 包定义语句在每个源程序中只能有一条,即一个类只能属 于一个包。包定义语句必须在程序的第一行(之前可有空格及注释)。包名用“.”分隔。,19,import 语句,将package 引入源程序,格式:import 包名.*;import 包名.类名;import 语句必须在源程序之前,在package 声明之后。package./缺省是package.import./缺省是import java.lang.*类声明.,20,包名与包中类的存储位置,包分隔符相当于目录分隔符,包存储的路径由包根路径加上包名指明的路径组成。包的根路径由CLASSPATH环境变量指出。%CLASSPATH%abc f

12、inanceDept,21,源文件(.java)与类文件(.class)的管理,源文件可以按照包名指明的路径放置。如,类文件也应该放在反映包名的一系列目录下。,22,一般将源文件与类文件分别存放,可采用如下方式:,源文件(.java)与类文件(.class)的管理,示例,23,高级访问控制,成员变量和方法有4种访问级别:public,protected,default(package),private;类有两种访问级别:public 或default。修饰符的作用范围:Modifier Same class Same Package Subclass Universepublic Yes Ye

13、sYes Yesprotected Yes Yes Yesdefault Yes Yesprivate Yes,24,class Alpha private int iamprivate;private void privateMethod()System.out.println(privateMethod);class Beta void accessMethod()Alpha a=new Alpha();a.iamprivate=10;a.privateMethod();,高级访问控制-private,/illegal,/illegal,25,class Alpha private int

14、 iamprivate;boolean isEqualTo(Alpha anotherAlpha)if(this.iamprivate=anotherAlpha.iamprivate)return true;else return false;,高级访问控制,注意:访问控制应用于class或type 层次,而不是对象层次。,26,允许类本身、它的子类、以及同一个包中其余的类访问这些成员。package Greek;public class Alpha protected int iamprotected;protected void protectedMethod()System.out.pr

15、intln(protectedMethod);package Greek;class Gamma void accessMethod()Alpha a=new Alpha();a.iamprotected=10;a.protectedMethod();,高级访问控制protected,/legal,/legal,27,package Latin;import Greek.*;class Delta extends Alpha void accessMethod(Alpha a,Delta d)a.iamprotected=10;d.iamprotected=10;a.protectedMeth

16、od();d.protectedMethod();,高级访问控制protected,X,X,28,package Greek;class Alpha int iampackage;void packageMethod()System.out.println(packageMethod);package Greek;class Beta void accessMethod()Alpha a=new Alpha();a.iampackage=10;a.packageMethod();,高级访问控制package,29,内部类,内部类是在一个类的声明里声明的类。Class A class B 内部类

17、可作为类的一个成员使用。一般只在包容类中调用。内部类可以访问外包类的所有成员。,30,=运算符与equals()方法,equals()和=比较两个引用是否指向相同的对象。equals()方法在String,Date,File,所有Wrapper类都重 写了该方法,改为比较内容。,31,Wrapper类,Wrapper将基本类型表示成类。每个wrapper类对象都封装了基本类型的一个值。Primitive Data Type Wrapper ClassbooleanBooleanbyteBytecharCharactershortShortint IntegerlongLongfloatFloa

18、tdoubleDouble,32,Wrapper类,Wrapper类中包含了很多有用的方法和常量。如数字型Wrapper类中的MIN_VALUE 和 MAX_VALUE 常量,定义了该类型的最大值与最小值。byteValue,shortValue方法进行数值转换,valueOf 和 toString 实现字符串与数值之间的转换。,例:Wrapper类对象的创建:Integer quantity=new Integer(123456);Double amount=new Double(345987.246);,33,Collection API-集合类,一个集合类对象表示了一组对象,相当于一个容

19、器。,34,Set,Set不能包含重复的元素。两种Set实现:HashSet和TreeSet Set 接口定义:public interface Set/Basic Operations int size();boolean isEmpty();boolean contains(Object element);boolean add(Object element);/Optional boolean remove(Object element);/Optional Iterator iterator();,35,List,List是有序的集合,元素可以重复。List接口定义:public in

20、terface List extends Collection/Positional Access Object get(int index);Object set(int index,Object element);/Optional void add(int index,Object element);/Optional Object remove(int index);/Optional abstract boolean addAll(int index,Collection c);/Optional/Search int indexOf(Object o);int lastIndexO

21、f(Object o);List的实现:ArrayList,LinkedList,Vector,36,Map,Map把键值映射到某个值。一个键值最多只能映射一个值。Map 接口定义:,public interface Map/Basic Operations Object put(Object key,Object value);Object get(Object key);Object remove(Object key);boolean containsKey(Object key);boolean containsValue(Object value);int size();boolean isEmpty();,Map的实现:HashMap,TreeMap,HashTable,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号