package com.light.springBoot.test;
/**
* 内部类篇
* @author jx
*
*/
public class Outclass {
/**
* 关于内部类,可以访问外部类的实例,编译后内部类会被编译为.class文件,前面冠以外部类的类名,或者$符号。
*/
/**
* 成员内部类
*/
public class Inner{
public void play(){}
}
/**
* 在外部类的静态方法中,先创建外部类对象在实例化内部类对象
*/
public static void ppk(){
Outclass outclass = new Outclass();
Outclass.Inner in = outclass.new Inner();
System.out.println(in);
}
/**
* 在外部类的非静态方法中,用普通的内部类new的方法获取对象
*/
public void method(){
Inner inner =new Inner();
inner.play();
}
/**
* 加上static关键字变为静态内部类
* @author jx
*
*/
public static class Inner2{}
/**
* 方法内部类
* 在方法中声明的内部类
* 方法内部类只能在定义的方法中实例化
*/
public void dosomething(){
final int a= 10;
class Inner3{
public void seeOut(){
}
}
//在方法中实例化方法内部类
Inner3 inner3 =new Inner3();
inner3.seeOut();
}
/**
* 匿名内部类,下面是一个匿名内部类启动线程的方法
*/
public void Inner4(){
new Thread(new Runnable() {
public void run() {
}
}).start();
}
}
/**
* 内部类篇
* @author jx
*
*/
public class Outclass {
/**
* 关于内部类,可以访问外部类的实例,编译后内部类会被编译为.class文件,前面冠以外部类的类名,或者$符号。
*/
/**
* 成员内部类
*/
public class Inner{
public void play(){}
}
/**
* 在外部类的静态方法中,先创建外部类对象在实例化内部类对象
*/
public static void ppk(){
Outclass outclass = new Outclass();
Outclass.Inner in = outclass.new Inner();
System.out.println(in);
}
/**
* 在外部类的非静态方法中,用普通的内部类new的方法获取对象
*/
public void method(){
Inner inner =new Inner();
inner.play();
}
/**
* 加上static关键字变为静态内部类
* @author jx
*
*/
public static class Inner2{}
/**
* 方法内部类
* 在方法中声明的内部类
* 方法内部类只能在定义的方法中实例化
*/
public void dosomething(){
final int a= 10;
class Inner3{
public void seeOut(){
}
}
//在方法中实例化方法内部类
Inner3 inner3 =new Inner3();
inner3.seeOut();
}
/**
* 匿名内部类,下面是一个匿名内部类启动线程的方法
*/
public void Inner4(){
new Thread(new Runnable() {
public void run() {
}
}).start();
}
}