35内部类和匿名类

  1. 什么是内部类
  2. 内部类的使用方法
  3. 匿名内部类的使用方法

内部类可以随意使用外部类

class A{
	int i;
	class	B{  //B是A的内部类
		int j;
		int funB(){
			int result = i + j ;//在B中可以使用外部类的成员变量
			return result;
		}
	}
}
class Test{
	public static void main(String regs[]){
		A a = new A();
		A.B b = a.new B(); //生成内部类的对象
		a.i = 3;
		b.j = 2;
		int result = b.funB();
		System.out.println(result);    //result == 5
	}
}

==============================================================

interface A{ // 定义一个接口
	public void doSomething();
}
class B {
	public void fun(A a){ //将A类作为参数
		System.out.println("B的方法");
		a.doSomething(); //调用A类的方法
		}
}
class AImpl implements A{  //AImpl实现A接口
	public void doSomething(){
		System.out.println("doSomething1");
	}
}
interface Test{  
	 public static void main(String args[]){
		AImpl al = new AImpl(); 
	 //	A a = al ; //向上转型 转成A类 
		B b = new B();// 生成B的对象
		b.fun(al);// 直接用al做参数可以省掉向上转型的步骤
	 }
}

=======================================================================

匿名内部类写法

interface A{ // 定义一个接口
	public void doSomething();
}
class B {
	public void fun(A a){ //将A类作为参数
		System.out.println("B的方法");
		a.doSomething(); //调用A类的方法
		}
}
interface Test{  
	 public static void main(String args[]){
		B b = new B();// 生成B的对象
		b.fun(new A(){//匿名内部类 生成一个A的对象直接给B.fun用
			public void doSomething(){
				System.out.println("匿名内部类");
			}
		});

	 }
}

时间: 2024-11-10 02:48:12

35内部类和匿名类的相关文章

内部类与匿名类(转)

Java 中的内部类和匿名类* 为什么需要内部类? Java 内部类有什么好处?为什么需要内部类? 首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法的名称,参数相同,你应该怎么办?这时候,你可以建一个内部类实现这个接口.由于内部类对外部类的所有内容都是可访问的,所以这样做可以完成所有你直接实现这个接口的功能. 不过你可能要质疑,更改一下方法的不就行了吗? 的确,以此作为设计内部类的理由,实在没有说服力.真正的原因是这样的,java 中的内部类和接口

【转 Java 中的内部类和匿名类

 Java 中的内部类和匿名类 2008-10-16 13:47:41 标签:Java 内部类 匿名类 休闲 职场 Java 中的内部类和匿名类* 为什么需要内部类? Java 内部类有什么好处?为什么需要内部类? 首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法的名称,参数相同,你应该怎么办?这时候,你可以建一个内部类实现这个接口.由于内部类对外部类的所有内容都是可访问的,所以这样做可以完成所有你直接实现这个接口的功能. 不过你可能要质疑,更改一

Java笔记十八.内部类和匿名类

内部类和匿名类 转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空) 一.内部类 1.定义 在一个类内部定义类,即为嵌套类(内部类).有如下几点特点:(1)嵌套类可以直接访问嵌套它的类的成员(变量和方法),包括private成员.但是,嵌套类的成员却不能被嵌套它的类直接访问.(2)内部类使得程序代码更为紧凑,程序更具模块化. 2.内部类实现方法 (1)类中定义和使用一个内部类 在类中直接定义的嵌套类的使用范围,仅限于这个类的内部.内部类的定义和普通

(转)Java基础——嵌套类、内部类、匿名类

本文内容分转自博客:http://www.cnblogs.com/mengdd/archive/2013/02/08/2909307.html 将相关的类组织在一起,从而降低了命名空间的混乱. 一个内部类可以定义在另一个类里,可以定义在函数里,甚至可以作为一个表达式的一部分. Java中的内部类共分为四种: 静态内部类static inner class (also called nested class) 成员内部类member inner class 局部内部类local inner cla

Java中的内部类、匿名类的使用

代码(test.java): 1 interface ie{ 2 public void print(); 3 } 4 5 class outer{} 6 7 public class test{ 8 public class inner{} 9 public void test(ie e){ 10 e.print(); 11 } 12 public static void main(String[] args){ 13 14 15 new test().test(new ie(){ 16 pu

【转】Java中的内部类和匿名类

Java内部类(Inner Class),类似的概念在C++里也有,那就是嵌套类(Nested Class),乍看上去内部类似乎有些多余,它的用处对于初学者来说可能并不是那么显著,但是随着对它的深入了解,你会发现Java的设计者在内部类身上的确是用心良苦.学会使用内部类,是掌握Java高级编程的一部分,它可以让你更优雅地设计你的程序结构.下面从以下几个方面来介绍: 第一次见面 public interface Contents {    int value();} public interfac

四种监听器(自身类,外部类,内部类,匿名类)

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ThisClassEvent extends JFrame implements ActionListener{ public ThisClassEvent(){ setLayout(new FlowLayout()); JButton btn=new JButton("ok"); add(btn); btn.addActionL

14.内部类和匿名类

1.定义    一个类定义在另外一个类里面. 编译出来都是    外部类$内部类.class. 内部类可以随意使用外部类中的成员变量.函数. 2.使用方法 生成内部类的对象. A.B b = new A().new B(); A为外部类,B为内部类. 调用内部类的成员变量,直接j,等同于this.j 调用外部类的成员变量,A.this.i 从外部类的程序代码中初始化内部类,此内部对象会绑在该外部对象上. 外部类的程序代码可以用初始化其他类完全相同的方法初始化它所包含的内部类. 有了内部类,可以实

19 内部类和匿名类

class A { int i; class B { int j; int funB() { int result=i+j; return result; } } } class Test { public static void main(String args[]) { A a=new A(); A.B b=new A().new B(); } }