内部类我们在程序开发中经常会用到,这里通过普通内部类,静态内部类和方法内部类三种方式来介绍一下内部类的创建方式。
1.普通内部类的创建:
/**
*
* 普通内部类的定义
*
*/
class Outer {
private String name = "hello world !";
//普通内部类定义
class Inner{
public void print(){
System.out.println(name);
}
}
}
public class TestDemo {
public static void main(String[] args) {
Outer out = new Outer();
out.new Inner().print();
}
}
通过上面的代码可以看出来,普通的内部类不必要通过外部类
显示定义私有属性的get和set方法就可以访问
外部类的私有属性。
2.静态内部类
/**
*
* 静态内部类的定义
*
*/
class Outer{
private static String name = "hello world !";
static class Inner{
public static void print(){
System.out.println(name);
}
}
}
public class TestDemo {
public static void main(String[] args) {
Outer.Inner.print();
}
}
通过观察上面的代码,静态内部类只能访问外部类的静态属性,静态内部类也不用
通过外部类
显示定义静态
私有属性的get和set方法就可以访问
外部类的私有属性。
3.方法内部类
/**
*
* 方法内部类的定义
*
*/
class Outer {
private String name = "hello world !" ;
public void fun(final int num){
final String param = "我是方法参数";
class Inner {
public void print(){
System.out.println("方法传入参数:"+num);
System.out.println("外部类参数:"+Outer.this.name);
System.out.println("方法内部参数:"+param);
}
}
new Inner().print();
}
}
public class TestDemo {
public static void main(String[] args) {
new Outer().fun(100);
}
}
方法内部类要想访问方法传入的参数和方法内部的参数,参数类型前面必须要添加final关键字来修饰。