内部类
2016-03-03 11:22
169 查看
1、匿名内部类即没有名称的内部类,每个匿名内部类只能使用一次,使用匿名内部类有一个条件,那就是必须继承一个父类或者接口。匿名内部类不能有构造器。
实例一(基本实现):
abstract class Person(){
public abstract void eat();
}
class demo(){
public static void main(String []args){
Person p=new Person(){
public void eat(){
system.out.println(“i like eat”);
}
};
p.eat();
}
}
实例二(继承接口的情况):
interface Person{
public void eat();
}
class demo(){
public static void main(String []args){
Person p=new Person(){
public void eat(){
system.out.println(“i like eat”);
}
};
p.eat();
}
}
实例三(在线程中的使用):
class demo(){
public static void main(String []args){
Thread t=new Thread(){
public void run(){
for(int i=0;i<5;i++){
System.out.println(i+” “);
}
}
};
t.start();
}
}
2、静态内部类
class Out{
private static int age=12;
static class In{
public void print(){
system.out.println(age);
}
}
}
public class demo(){
public static void main(String []args){
Out.In in=new Out.In();
in.print();
}
}
程序输出:12
可以看到,如果用static 将内部类静态化,那么内部类就只能访问外部类的静态成员变量,具有局限性
实例一(基本实现):
abstract class Person(){
public abstract void eat();
}
class demo(){
public static void main(String []args){
Person p=new Person(){
public void eat(){
system.out.println(“i like eat”);
}
};
p.eat();
}
}
实例二(继承接口的情况):
interface Person{
public void eat();
}
class demo(){
public static void main(String []args){
Person p=new Person(){
public void eat(){
system.out.println(“i like eat”);
}
};
p.eat();
}
}
实例三(在线程中的使用):
class demo(){
public static void main(String []args){
Thread t=new Thread(){
public void run(){
for(int i=0;i<5;i++){
System.out.println(i+” “);
}
}
};
t.start();
}
}
2、静态内部类
class Out{
private static int age=12;
static class In{
public void print(){
system.out.println(age);
}
}
}
public class demo(){
public static void main(String []args){
Out.In in=new Out.In();
in.print();
}
}
程序输出:12
可以看到,如果用static 将内部类静态化,那么内部类就只能访问外部类的静态成员变量,具有局限性
相关文章推荐
- response和request的setCharacterEncoding区别
- 中介者模式
- 自适应插件windows Resizer
- iOS拨打电话方法(3种)
- Runtime那些事儿(消息机制)
- 渗透测试抓包神器Burp Suite,无需输入 license key
- 网络编程socket之bind、Listen 及 accept
- js url.slice(star,end) url.lastIndexOf('/') + 1, -4
- 如何在同一系统中启动多个 TOMCAT
- 谷歌浏览器地址栏下拉框里的历史记录删不掉
- sed n/N使用说明
- 5.10
- Linux音视频(液晶硬件参数获取)
- Swift2.0(10)闭包
- Android程序开发中单选按钮(RadioGroup)的使用详解
- keepalived 各配置项和术语说明
- Java基于UDP协议的简单通讯实例
- 5.9
- json-c API总结
- Outlook PST异常修复