JAVA语言程序设计第五章

上传人:niu****ong 文档编号:244732391 上传时间:2024-10-05 格式:PPT 页数:36 大小:287.49KB
返回 下载 相关 举报
JAVA语言程序设计第五章_第1页
第1页 / 共36页
JAVA语言程序设计第五章_第2页
第2页 / 共36页
JAVA语言程序设计第五章_第3页
第3页 / 共36页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第五章 Java,高级语言特征,静态变量、方法与初始化程序块,final,关键字,抽象类,Interface,package,访问控制,内部类,其它,1,类变量(static/class variable),在该类所有实例之间是共享的。在加载该类时,只分配,一次空间,并初始化。,例:class Employee,static,int com;,则运行时,,com,com,com,com,e1,e2,e3,2,类变量(static/class variable),类变量可用来在实例之间进行通信或跟踪该类实例的数目。,例:public class Count,private int serialNumber;,private static int counter=0;,public Count(),counter+;,serialNumber=counter;,3,类变量可以是public,或private,对于public 类型的类变量,可以在类外直接用类名调用而不需要初始化。,Public class StaticVar,public,static,int number;,public class Otherclass,public void method(),int x=StaticVar.number;,类变量(static/class variable),4,类(class/static),方法,可以直接被调用,而不需要生成任何实例,public class GeneralFunction,public,static,int addUp(int x,int y),return x+y;,public calss UseGeneral,public void method(),int c=GeneralFunction.addUp(9,10);,5,静态初始化程序,没有存在于任何方法体中的静态语句块。在加载该类时执行且只执行一次。,public Class StaticInitDemo,static int i=5;,static,System.out.println(“Static code:i=”+i+);,public class Test,public static void main(String args),System.out.println(“Main code:i=”+,StaticInitDemo.i);,Static code:i=5,Main code:i=6,6,Final,关键字,被定义成final,的类不能有子类。,例:final class Employee,class Manager extends Employee,被定义成final 的成员方法不能被重写。,被定义成final的成员变量不能改变。该变量实际上,是常量,一般大写,并赋值。,final int NUMBER=100;,7,抽象类,一个类如果只声明方法而没有方法的实现,则称为抽象类。,必须在声明中增加,abstract,关键字,在无方法体的方法前,也要加上,abstract,。,Public,abstract,class Drawing,public abstract void drawDot(int x,int y);,public void drawLine(int x1,int y1,int x2,int y2),.,/调用drawDot()方法,抽象类也可有普通的成员变量或方法。,8,抽象类,抽象类不能直接用来生成实例。一般可通过定义,子类进行实例化。,可以生成抽象类的变量,该变量可以指向具体的一个,子类的实例。,Abstract class Employee,abstract void raiseSalary(int i);,class Manager extends Employee,void raiseSalary(int i).,Employee e=new Manager();,9,接口 interface,Interface,是在抽象类概念的基础上演变而来的。,一个interface所有成员方法都是抽象的,并且只能,定义 static final 成员变量。,10,Interface 的含义,interface,定义了一组行为的协议。两个对象之间通过这个协议进行通信。,interface 不属于类层次结构。不相关的类可以实现相同的接口。,11,interface,Flyer,Vehicle,interface,Sailer,dock(),cruise(),Airplane,takeoff(),land(),fly(),RiverBarge,dock(),cruise(),takeoff(),land(),fly(),SeaPlane,dock(),cruise(),Helicopter,Interface 示例,12,用implements代替extends声明子类,该子类中必须实现接口(及其超类)中的所有方法。,例:interface SayHello,void printMessage();,class SayHelloImpl implements SayHello,void printMessage(),System.out.println(“Hello”);,实现interface,13,Interface的使用,Interface可以作为一种数据类型使用。,如:,public class StockMonitor,public void watchStock(,StockWatcher watcher,String tickerSymbol,double delta),.,14,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 newValue);,public interface StockTracker extends StockWatcher,void currentValue(String tickerSymbol,double newValue);,15,可以通过实现接口实现多重继承:一个类可只继承,一个父类,并实现多个接口。,interface I1 ;,interface I2;,class E.;,class M extends E implements I1,I2 ,一个interface 可作为类名使用,实现多态。,接口 interface,Interface Human,class Chinese implements Human,class Japanese implements Human,.,Human e=new Chinese();Human e=new Japanese();,16,类分组,package 语句,包(package),是相关类与接口的一个集合,它提供访问控制与命名空间管理。,Java,平台中的类与接口都是根据功能以包组织的。,包机制的好处:,程序员容易确定包中的类是相关的,并且容易根据所需的功能找到相应的类。,每个包都创建一个新的命名空间,因此不同包中的类名不会冲突。,同一个包中的类之间有比较宽松的访问控制。,17,创建包,用package语句指定源文件中的类属于一个特定包:,package 包名,包定义语句在每个源程序中只能有一条,即一个类只能属,于一个包。,包定义语句必须在程序的第一行(之前可有空格及注释)。,包名用“.”分隔。,18,import,语句,将package 引入源程序,格式:,import,包名.*;,import 包名.类名;,import 语句必须在源程序之前,在package 声明之后。,package./缺省是package.,import./缺省是import java.lang.*,类声明,.,19,包名与包中类的存储位置,包分隔符相当于目录分隔符,包存储的路径由包根路径加上包名指明的路径组成。,包的根路径由CLASSPATH,环境变量指出。,%CLASSPATH%abc,financeDept,20,源文件(.java)与类文件(.class)的管理,源文件可以按照包名指明的路径放置。如,类文件也应该放在反映包名的一系列目录下。,21,一般将源文件与类文件分别存放,可采用如下方式:,源文件(.java)与类文件(.class)的管理,示例,22,高级访问控制,成员变量和方法有4种访问级别:,public,protected,default(package),private;,类有两种访问级别:public 或default。,修饰符的作用范围:,Modifier Same class Same Package Subclass Universe,public Yes YesYes Yes,protected Yes Yes Yes,default Yes Yes,private Yes,23,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,24,class Alpha,private int iamprivate;,boolean isEqualTo(Alpha anotherAlpha),if(this.iamprivate=anotherAlpha.iamprivate)return true;,else,return false;,高级访问控制,注意,:访问控制应用于class或type 层次,而不是对象层次。,25,允许类本身、它的子类、以及同一个包中其余的类访问这些成员。,package Greek;,public class Alpha,protected int iamprotected;,protected void protectedMethod(),System.out.println(protectedMethod);,package Greek;,class Gamma,void accessMethod(),Alpha a=new Alpha();,a.iamprotected=10;,a.protectedMethod();,高级访问控制protected,/legal,/legal,26,package Latin;,import Greek.*;,class Delta extends Alpha,void accessMethod(Alpha a,Delta d),a.iamprotected=10;,d.iamprotected=10;a.protectedMethod();d.protectedMethod();,高级访问控制protected,X,X,27,package Greek;,class Alpha,int iampackage;,void packageMethod(),System.out.print
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!