前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java中接口interface和private私有内部类怎样一块配合着用?

java中接口interface和private私有内部类怎样一块配合着用?

作者头像
马克java社区
修改2021-04-01 10:11:28
5030
修改2021-04-01 10:11:28
举报
文章被收录于专栏:java大数据

3.接口interface和private内部类协同工作【新手可忽略不影响继续学习】

马克-to-win:由于是private内部类,外面无法访问甚至无法看到你编的源代码(如果在不同的包中),非常安全。外界只能调用接口中的方法。下例中访问不了Core,甚至你不知道有Core的存在。给你的就是外部的接口,供你使用。马克-to-win:我们一直没讲class 如何能private, 这里内部类时,就可以用private了。且内部类随便访问外部类的东西, 这就非常有力度了, 可以用到外部类所有的资源!

例2.3---

interface CoreI

{   

    void display();

}

class ShellMark_to_win {

    int shell_x = 100;

    static int n;

    // 下面内部类是private,只能外层类的方法才能访问到, 非常安全

    private class Core implements CoreI {

/* 下一句错误,马克-to-win:根据语法:静态的域或方法只能出现在静态类或最外层类上。The field m cannot be declared static; static fields can only be declared in static inner class or top level classes,*/      

  //    static int m=9;

        int y = 10; // y is local to core

        public void display() {

            shell_x=shell_x+20;

            n=n+1;//马克-to-win:轻松访问外层类的静态变量

            System.out.println("n is "+n+" display: shell_x and y " + shell_x + " "+ShellMark_to_win.this.shell_x+ " " + y+ " "+this.y);

        }

    }

    Core newC()

    {

        return new Core();

    }

}

public class Test {

    public static void main(String args[]) {

        ShellMark_to_win shell = new ShellMark_to_win();

     //   ShellMark_to_win.Core sc=shell.new Core();//错误,马克-to-win: 因为Core是私有的

        CoreI sc1=shell.newC();

        sc1.display();

    }

}

更多请见:https://blog.csdn.net/qq_44639795/article/details/103110032

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档