《Java与面向对象程序》-3.4 内部类_第1页
《Java与面向对象程序》-3.4 内部类_第2页
《Java与面向对象程序》-3.4 内部类_第3页
《Java与面向对象程序》-3.4 内部类_第4页
《Java与面向对象程序》-3.4 内部类_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习目标理解内部类的含义,掌握成员内部类的特点和使用方法主要内容成员内部类静态内部类方法内部类匿名内部类案例:银行卡开户程序设计内部类概述内部类是定义在其他类中的类,包含内部类的类被称为外部类。Outer是包含其他类的类,称为外部类Inner是包含在类Outer中的类,称为内部类Test类会访问类Outer及它的内部类Inner,称为客户类classOuter{classInner{}}内部类可分为成员内部类、静态内部类、方法内部类和匿名内部类四种1.成员内部类成员内部类是指作为Java类成员的内部类,也叫实例内部类Java类中可定义的成员包括成员变量、成员方法、构造方法、代码块和成员内部类成员内部类可处于public、protected、private和默认这四种访问级别,而外部类只能处于public和默认访问级别1.成员内部类【例3-6】成员内部类的使用程序的运行结果1.成员内部类关于成员内部类,要注意:在内部类中可以直接访问外部类的所有成员,包括成员变量和成员方法;如内部类与外部类包含同名的成员(如内部类变量Inner.x和外部类变量OuterClass.x),则在内部类方法中x或this.x表示内部类变量x,而OuterClass.this.x表示外部类变量x;在创建内部类的实例时,外部类的实例必须已经存在。下面的语句:OuterClass.Innerinner=newOuterClass().newInner();等价于:OuterClassouter=newOuterClass(); //创建外部类对象OuterClass.Innerinner=outer.newInner();//创建内部类对象1.成员内部类关于成员内部类,要注意(续):在外部类中不能直接访问内部类的成员,必须通过内部类的实例去访问;成员内部类中不能定义静态成员,只能定义实例成员。如下面的内部类Middle中包含三个静态成员,编译将无法通过classOuter{ classMiddle{

staticinta; //编译错误

inta; //合法

staticvoidprint(){} //编译错误

voidprint(){} //合法

staticclassInner{} //编译错误

classInner{} //合法

}}2.静态内部类若定义内部类时用static修饰,它就成了一个static内部类。例如:classOuter{ privateintx=1; publicstaticclassInner{ … }}static内部类能访问外部类中的所有成员:外部类中的static成员可直接访问;非static成员间接访问,即先创建外部类的对象,然后通过该对象来访问。3.方法内部类方法内部类也叫局部内部类,是定义在方法或代码块中的内部类,局部内部类不能定义访问权限控制符,也不能定义为static的。外部类完全不能访问局部内部类。局部内部类可以访问外部类中的成员,还可以访问所在代码块(方法)中的局部变量,如方法的形参、方法的局部变量。前提是这些局部变量必须被定义为final的。//外部类publicclassOuter{

privateintx=1;publicvoidf(finalinty){

intz=2;//定义局部内部类

classInner{ publicInner(){ System.out.println(“x=”+x+“y=”+y); //可以访问x与y,不能访问z } }}}4.匿名内部类匿名内部类是一种特殊的内部类,这种类没有名字,必须继承其他类或实现某个接口。我们将在“模块4面向对象高级特性”部分具体学习【案例3-2】银行卡开户程序设计案例描述使用所学知识编写一个银行卡开户程序,实现客户银行卡开户功能。要求:在银行账户类Account中以成员内部类的形式定义银行卡类Card和客户类User,实现类信息的封装;Account类中提供静态方法openAccount(Card,User)实现开户功能,需做客户年龄合法性判断:如果客户年龄不小于15周岁,则提示银行卡开户成功;否则提示开户失败。开户成功和开户失败的运行结果如下图【案例】银行卡开户程序设计实现思路主要通过银行账户类Account实现所需功能。在该类中应定义:银行卡内部类Card,有卡号属性用户内部类User,有用户姓名、年龄属性开户静态方法,在该方法中判断是否关联用户和卡、以及用户年龄范围编写测试类,在m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论