当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

辽宁经济职业技术学院:《JAVA语言概述》课程教学资源(PPT课件讲稿)第十三讲 内部类(2)

资源类别:文库,文档格式:PPT,文档页数:14,文件大小:153.5KB,团购合买
在 BankAccount的非静态方法中,我们可以使 用类名 InterestAdder而不需要加任何限制词, 因为编译器会自动为它加上this变量作为限定 词。因此可以在对象 BankAccount的方法中生 成新的 nterestAdder对象:
点击下载完整版文档(PPT)

AvA 内部(2) 辽宁经济职业技术学院信息系 硕士、副教授陈英 JAVA

内部类(2) 辽宁经济职业技术学院信息系 硕士、副教授 陈英

鱼Iner( Classteest都部美实侧分析 publie void aetion Performed(Action Event event) double interest= BankAccount. this balance this rate /100 BankAccount this, balance +=interest: 因为它是在 Number Format formatter BankAccount对象的 NumberFormat.getCurrencyInstance0; 环境中生成的一个 类型为 System. out. printIn("balance="+ nterestAdder的对 formatterformat(BankAccount. this, balance) 新创建的 Interestadder对象中的外部类应用被设置成 创建该对象方法中的ths引用: L Action Listener adder thi new Interestadder(ratey JAVA

InnerClasstEest内部类实例分析 public void actionPerformed(ActionEvent event) { double interest = BankAccount.this.balance *this. rate / 100; BankAccount.this.balance += interest; NumberFormat formatter = NumberFormat.getCurrencyInstance(); System.out.println("balance=" + formatter.format(BankAccount.this.balance)); } 新创建的InterestAdder对象中的外部类应用被设置成 创建该对象方法中的this引用: ActionListener adder = this.new InterestAdder(rate); 因为它是在 BankAccount对象的 环境中生成的一个 类型为 InterestAdder的对 象

InnerClasstEest嘟粪实例分折 AvA 内部类 Interestadder套在 Bankaccount类中。 如果已经生成了一个 BankAccount类型的对象, 则可以采用下列语句生成一个类型为 InterestAdder的对象: Bankaccount. Interestadder adder -BankAccount. new InterestAddero; 这里生成了一个嵌套类的对象,它与前面生 成的 BankAccoun对象关联。因为它是在 Bankaccoun对象的环境中生成的一个类型为 InterestAdder的对象。 JAVA

InnerClasstEest内部类实例分析 内部类InterestAdder嵌套在BankAccount类中。 如果已经生成了一个BankAccount类型的对象, 则可以采用下列语句生成一个类型为 InterestAdder的对象: BankAccount. InterestAdder adder =BankAccount. new InterestAdder(); 这里生成了一个嵌套类的对象,它与前面生 成的BankAccount对象关联。因为它是在 BankAccount对象的环境中生成的一个类型为 InterestAdder的对象

nner ClasstEest向部类实例分析 AvA 在 BankAccount的非静态方法中,我们可以使 用类名 InterestAdder而不需要加任何限制词, 因为编译器会自动为它加上this变量作为限定 词。因此可以在对象 BankAccount的方法中生 成新的 IInterestAdder对象: O InterestAdder adder=new InterestAdderO O这也就相当于: O This. Interestadder adder =this, new InterestAdderO JAVA

InnerClasstEest内部类实例分析 在BankAccount的非静态方法中,我们可以使 用类名InterestAdder而不需要加任何限制词, 因为编译器会自动为它加上this变量作为限定 词。因此可以在对象BankAccount的方法中生 成新的InterestAdder对象: InterestAdder adder =new InterestAdder(); 这也就相当于: This.InterestAdder adder =this.new InterestAdder();

局部向部类 AvA 内部类可以定义在一个语句块内,这时内部类可 以存取语句块中的局部变量,但这只限于在语句 块的生命期内。 )在一个方法里定义的内部类则称之为局部内部类。 它们的范围总是限定在声明它们的程序块中 。局 部类不会使用访问提示符(如 public或者 private) 来声明。 o局部类有一个重大优点,它们能够对外部世界完 全隐藏起来。即使 Bankaccount类中的其它代码 也不能访问它们。 ○除了 start方法以外,谁也不知道 TInterestAdder JAVA 类的存在

局部内部类 内部类可以定义在一个语句块内,这时内部类可 以存取语句块中的局部变量,但这只限于在语句 块的生命期内。 在一个方法里定义的内部类则称之为局部内部类。 它们的范围总是限定在声明它们的程序块中。局 部类不会使用访问提示符(如public或者private) 来声明。 局部类有一个重大优点,它们能够对外部世界完 全隐藏起来。即使BankAccount类中的其它代码 也不能访问它们。 除了start 方法以外,谁也不知道InterestAdder 类的存在

局部角部类 VAc void start(double rate) class InterestAdderimplements Action listener public InterestAdder(double aRate)i rate=aRate; public void actionPerformed(Action Event event)i double interest= balance rate /100; balance + interest Number Format formatter Number Format. get CurrencyInstanceo System. out println("balance=+ formatter format(balance));) private double rate; Action Listener adder= new InterestAdder(rate); Timert= new Timer(1000, adder) t start; JAVA

局部内部类 public void start(double rate) { class InterestAdder implements ActionListener { public InterestAdder(double aRate) { rate = aRate; } public void actionPerformed(ActionEvent event) { double interest = balance * rate / 100; balance += interest; NumberFormat formatter = NumberFormat.getCurrencyInstance(); System.out.println("balance=" + formatter.format(balance)); } private double rate; } ActionListener adder = new InterestAdder(rate); Timer t = new Timer(1000, adder); t.start(); }

局部角部类 AvA 相对于内部类来说,局部类还有一个优点 就是它们不仅能够访问它们的外部类中的 字段,它们甚至于能够访问局部变量。然 而,那些局部变量必须声明为fnal 在 Interest dder类中不再需要保存一个ate 实例变量。它只是简单地指向包含类定义 方法的参数变量。 JAVA

局部内部类 相对于内部类来说,局部类还有一个优点, 就是它们不仅能够访问它们的外部类中的 字段,它们甚至于能够访问局部变量。然 而,那些局部变量必须声明为final。 在InterestAdder类中不再需要保存一个rate 实例变量。它只是简单地指向包含类定义 方法的参数变量

局部角部类 AvA public void start( final double rate) class InterestAdderimplements Action Listener public void action Performed(Action Eventevent) double interest= balance x rate/100 balance + interest; Number Format formatter Number format get currencylnstanceo System. out. println(balance="+ formatter format(balance)); 3 ction Listener adder= new InterestAddero; Timert= new Timer(1000, adder); t start; JAVA

局部内部类 public void start( final double rate) { class InterestAdder implements ActionListener { public void actionPerformed(ActionEvent event) { double interest = balance * rate / 100; balance += interest; NumberFormat formatter = NumberFormat.getCurrencyInstance(); System.out.println("balance=" + formatter.format(balance)); } } ActionListener adder = new InterestAdder(); Timer t = new Timer(1000, adder); t.start(); }

匿名向部类 如集只需要内部类的一个对象,那么你不必给该类一个名字。 这时候我们称为匿名内部类。 public void start( final double rate) Action Listener adder= new ActionListener O; public void action Performed(Action Eventevent) double interest= balance s rate/100 balance += interest; NumberFormat formatter=NumberFormat.get currencylnstance0; System.out. printIn(balance "+ formatter format balance)); Timer t= new Timer (1000, adder); 创建了一个舆现 t start 了 Action listener 接口的类的新 JAVA

匿名内部类 创建了一个实现 了ActionListener 接口的类的新对 象。 如果只需要内部类的一个对象,那么你不必给该类一个名字。 这时候我们称为匿名内部类。 public void start( final double rate) { ActionListener adder = new ActionListener (); { public void actionPerformed(ActionEvent event) { double interest = balance * rate / 100; balance += interest; NumberFormat formatter = NumberFormat.getCurrencyInstance(); System.out.println("balance=" + formatter.format(balance)); } } Timer t = new Timer(1000, adder); t.start(); }

匿名向部类 AvA 华用于构造对象的任何参数都要放在跟在超类名字后面的 括号中。一般情况下,使用语句如下: New SuperType(construction parameters) { inner class methods and data } 在这里 Super Typ可以是一个接口,例如 Action listener, 那么内部类实现该接口;或者 Supertype是一个类,那 么内部类扩展该类。匿名内部类不能有构造器,这是因 为构造器必须同类名相同。而类根本没有名字。取而代 之的是,构造器参数被给到超类的构造器中。特别是, 如果一个内部类实现一个接口,那么该类构造器不能有 JAVA 任何参数

匿名内部类 用于构造对象的任何参数都要放在跟在超类名字后面的 括号中。一般情况下,使用语句如下: New SuperType(construction parameters) { inner class methods and data } 在这里SuperType可以是一个接口,例如ActionListener, 那么内部类实现该接口;或者SuperType是一个类,那 么内部类扩展该类。匿名内部类不能有构造器,这是因 为构造器必须同类名相同。而类根本没有名字。取而代 之的是,构造器参数被给到超类的构造器中。特别是, 如果一个内部类实现一个接口,那么该类构造器不能有 任何参数

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共14页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有