首页 > 其他分享 >17 内部类

17 内部类

时间:2023-02-11 23:44:29浏览次数:25  
标签:内部 17 void System hentai public out

内部类

image

package com.zhan.base05Oop.demo08;

public class Test17  {
    // 四种内部类

    public static void main(String[] args) {
        Outer outer=new Outer(); // 创建外部类的对象
        //   类型   对象   = 外部对象.new   内部类();
        Outer.Inner inner = outer.new Inner();  //  通过外部类的对象来实现内部类对象的创建

        outer.out();
        inner.in();
        inner.getAge();
        inner.getMethod();
    }
}

package com.zhan.base05Oop.demo08;

public class Outer {
    // 外部类
    private int age=19;

    public void out(){
        System.out.println("这是外部类的公有方法");
    }
    private void out1(){
        System.out.println("这是外部类的私有方法");
    }
    // 1. 成员内部类
    public class Inner{  // 成员内部类
        public void in(){
            System.out.println("这是内部类的公有方法");
        }

        // 成员内部类可以获得外部类的私有属性,私有方法
        public void getAge(){
            System.out.println(age);
        }
        public void getMethod(){
            out1();
        }
    }

    // 2. 静态内部类  静态内部类不能获取外部类的非静态属性和非静态方法,加载时间先后!
    public static class Inner1{

    }

    // 3. 局部内部类: 方法里面定义类
    public void method(){
        class Inner2{

        }
    }

    // 4.局部内部类,在 Test17_01 演示


}

package com.zhan.base05Oop.demo08;

public class Test17_01 {
    public static void main(String[] args) {
        // 4. 匿名内部类
        // 匿名:没有名字,  不将实例化的对象保存到变量中,说人话就是初始化一个类的对象却不赋予名字

        // 示例一
        new A().print1();

        // 示例二
       new UserService() {   // 示例二  可以返回一个对象(实例化),但我这里为了演示内部类没有写出来
            @Override
            public void hentai() {
                System.out.println("hentai");
            }
        }.hentai();   // 注意 :" ; "

        //  实例化一个对象
       UserService userService =new UserService() {   // 示例二  可以返回一个对象,但我这里为了演示内部类没有写出来
            @Override
            public void hentai() {
                System.out.println("hentai");
            }
        };   // 注意 :" ; "
        userService.hentai();


    }
}

class A{
    public void print1(){
        System.out.println(1);
    }
}

interface UserService{
    void hentai();
}

标签:内部,17,void,System,hentai,public,out
From: https://www.cnblogs.com/zhanjianhai/p/17113079.html

相关文章