您的位置:首页 > 编程语言 > Java开发

java学习笔记-接口与内部类

2016-03-14 22:27 295 查看
一、定义

接口:接口用来描述具体的功能,但并不给出功能的具体实现

内部类:处于另一个类的内部,其中的方法可以访问外部类的域,内部类技术主要用来设计具有相互协作的类集合

二、接口(没有实例域的抽象类)(instanceof也可以用于接口)

–1》接口中的方法自动属于public,不必提供关键词

–2》接口中不能包含实例域和静态方法,却可以包含常量

**自动设置为public static final

–3》不能用new实例化接口,却能够声明接口的变量:

**如List list=new ArrayList();

–4》接口与抽象类:

类是单继承,接口是多继承

三、内部类

–1》**内部类可以访问该类所在作用域的数据,包括私有数据

**内部类可以对同一个包中的其他类隐藏起来

**当要定义一个回调函数又不想编写大量代码用匿名内部类

–2》局部内部类

**局部内部类定义在方法中,完全隐藏,只有方法知道内部类的存在

**局部内部类可以访问被声明为final的局部变量、

class LocalInner
{
int a = 1;

public void doSomething()
{
int b = 2;
final int c = 3;
// 定义一个局部内部类
class Inner3
{
public void test()
{
System.out.println("Hello World");
System.out.println(a);

// 不可以访问非final的局部变量
// error: Cannot refer to a non-final variable b inside an inner
// class defined in a different method
// System.out.println(b);

// 可以访问final变量
System.out.println(c);
}
}

// 创建局部内部类的实例并调用方法
new Inner3().test();
}
}


–3》静态内部类

**只可以访问外部类的静态成员和静态方法,包括了私有的静态成员和方法。

class StaticInner
{
private static int a = 4;

// 静态内部类
public static class Inner
{
public void test()
{
// 静态内部类可以访问外部类的静态成员
// 并且它只能访问静态的
System.out.println(a);
}

}
}


–4》匿名内部类

**匿名内部类隐式地继承了一个父类或者实现了一个接口

String str2 = test.getDate(new Date()
{
});// 使用了花括号,但是不填入内容,执行结果和上面的完全一致
// 生成了一个继承了Date类的子类的对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: