标签:code print 文件 就是 inner 静态类 实例化 定义 获得
内部类分为:
1、成员内部类
2、静态内部类
3、局部内部类
4、匿名内部类
package com.jiemyx.oop.demo14;
public class Outer {
private int id = 1;
public void out(){
System.out.println("这是外部类的方法");
}
//1、成员内部类
public class Inner{
public void in(){
System.out.println("这是内部类的方法");
}
//获得外部类的私有属性
public void getID(){
System.out.println(id);
}
}
//2、静态内部类
public static class Inner2{
public void getID2(){
//报错,因为静态类是先加载了,除非private int id = 1;改为为private static int id = 1;
//System.out.println(id);
}
}
public void method(){
//3、局部内部类:在外部类的方法中的内部类
class Inner3{
public void getID3(){
}
}
}
}
//一个Java文件中可以有多个这样的class类,但是只能有一个public class
class A{
public static void main(String[] args) {
}
}
class B{
}
class C{
}
package com.jiemyx.oop.demo14;
public class Application {
public static void main(String[] args) {
Outer out = new Outer();
//成员内部类:通过外部类实例化内部类
Outer.Inner inner = out.new Inner();
inner.in();
inner.getID();
}
}
运行结果:
这是内部类的方法
1
package com.jiemyx.oop.demo14;
public class Test {
public static void main(String[] args) {
Test test = new Test();
test.new Inner4().in2();
//匿名类:没有名字初始化类,不用将实例保存到变量中
new Apple().eat();
//匿名接口
new UserService(){
@Override
public void hello() {
}
};
}
//4、匿名内部类
class Inner4{
public void in2(){
System.out.println("匿名内部类");
}
}
}
//匿名类
class Apple{
public void eat(){
System.out.println("吃苹果");
}
}
//接口
interface UserService{
void hello();
}
运行结果:
匿名内部类
吃苹果
标签:code print 文件 就是 inner 静态类 实例化 定义 获得
原文地址:https://www.cnblogs.com/Jiemyx/p/14698311.html