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 类的存在