栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

N种内部类(成员内部类、静态内部类、局部内部类、匿名内部类)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

N种内部类(成员内部类、静态内部类、局部内部类、匿名内部类)

内部类
  • 内部类就是在一个类的内部再定义一个类,比如,A类中定义一个B类,那么B类相对于A类来说就称为内部类,而A类相对B类来说就是外部类了。

扩展:一个java类中可以有多个class类,但是只能有一个public class

一、成员内部类
package com.jacyzhu.oop.demo12;

public class Outer {

    private int id = 10;

    public void out() {
        System.out.println("这是外部类的方法");
    }

    public class Inner{
        public void in() {
            System.out.println("这是内部类的方法");
        }

        // 获取外部类的私有属性~
        public void getID() {
            System.out.println(id);
        }
    }
}

测试类Application

package com.jacyzhu.oop;

import com.jacyzhu.oop.demo12.Outer;

public class Application {

    public static void main(String[] args) {
        Outer outer = new Outer();

        // 通过这个外部类来实例化内部类
        Outer.Inner inner = outer.new Inner();
        inner.in();
        inner.getID();
    }
}
运行结果:
这是内部类的方法
10
二、静态内部类

三、局部内部类
package com.jacyzhu.oop.demo12;

public class Outer {

    // 局部内部类
    public void method() {

        class Inner {
            public void in() {

            }
        }
    }
}
四、匿名内部类
package com.jacyzhu.oop.demo12;

public class Test {
    public static void main(String[] args) {
        // Apple apple = new Apple();
        // 没有名字初始化类,不用将实例保存到变量中
        new Apple().eat();

        new UserService() {
            @Override
            public void hello() {

            }
        };
    }
}

class Apple {
    public void eat() {
        System.out.println("1");
    }
}

interface UserService {
    void hello();
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1035474.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号