/*
内部类的访问规则:
1,内部类可以直接访问外部类中的成员,包括私有。
    之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外部类的引用,格式 外部类名.this
2,外部类要访问内部类,必须建立内部类对象。

访问格式:
1,当内部类定义在外部类的成员位置上,而且非私有,可以在外部其他类中。
可以直接建立内部类对象。
格式
    外部类名.内部类名  变量名 = 外部类对象.内部类对象;
    Outer.Inner in = new Outer().new Inner();

2,当内部类在成员位置上,就可以被成员修饰符所修饰。
    比如,private:将内部类在外部类中进行封装。
        static:内部类就具备static的特性。
        当内部类被static修饰后,只能直接访问外部类中的static成员。出现了访问局限。

在外部其他类中,如何直接访问static内部类的非静态成员呢?
        new Outer.Inner().function();

在外部其他类中,如何直接访问static内部类的静态成员呢?
        uter.Inner.function();

注意:当内部类中定义了静态成员,该内部类必须是static的。
          当外部类中的静态方法访问内部类时,内部类也必须是static的。

当描述事物时,事物的内部还有事物,该事物用内部类来描述。
因为内部事务在使用外部事物的内容。

class Body
{
    private class XinZang
    {

}

public void show()
    {
        new XinZang().
    }
    
}

*/
class Outer
{
    private static  int x = 3;

static class Inner//静态内部类
    {
        static void function()
        {
            System.out.println("innner :"+x);
        }
    }

static class Inner2
    {
        void show()
        {
            System.out.println("inner2 show");
        }
    }

public static void method()
    {
        //Inner.function();
        new Inner2().show();
    }

}

class  InnerClassDemo2
{
    public static void main(String[] args)
    {
        Outer.method();
        //Outer.Inner.function();
        //new Outer.Inner().function();
        //直接访问内部类中的成员。
//        Outer.Inner in = new Outer().new Inner();
//        in.function();
    }
}

转载于:https://www.cnblogs.com/liangqiyuan/p/5690148.html

java内部类的定义原则相关推荐

  1. Java内部类的定义和使用

    为什么要用到内部类: 在java开发学习中我们经常会碰到内部类.内部类又有很多的优势:首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法名称参数相同,你应 ...

  2. java内部类的定义_java定义内部类

    package test.jdk; public class InnerTest { private String instAtt = "实例变量"; private static ...

  3. 看到如此详细的Java内部类,我泪目了

    Java内部类 介绍 定义 成员内部类 语法格式 使用说明 代码示例 局部内部类 语法格式 使用说明 代码示例 匿名内部类 语法格式 使用说明 代码示例 静态内部类 语法格式 使用说明 代码示例 介绍 ...

  4. 如何新建java内部类_java内部类-1(内部类的定义)

    小胖从官网出发,研究下为什么我们需要些内部类,内部类的区别和联系. 思考三个问题: (1)为什么需要内部类?静态内部类和非静态内部类有什么区别: (2)为什么内部类可以无条件访问外部类成员: (3)为 ...

  5. Java内部类手机专卖店_Java(20)内部类

    内部类 一个定义在另一个类里面的类称为内部类.内部类可以分为四种形式:成员内部类, 成员内部类 内部调用外部的属性和方法 成员内部类可以无条件访问外部类的所有成员属性和方法. 其他类(例子中的RunC ...

  6. [转载] java 内部类与闭包

    参考链接: Java本地内部类 内部类 首先,让我们看看什么是内部类(Java 内部类,成员类,局部类,匿名类等): 根据内部类的位置不同,可将内部类分为 成员内部类局部内部类 class C{ // ...

  7. [转载] 夯实Java基础系列8:深入理解Java内部类及其实现原理

    参考链接: Java内部类 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tut ...

  8. Java内部类(转)

    内部类 ---定义在类的内部的类 为什么需要内部类? 典型的情况是,内部类继承自某个类或实现某个接口,内部类的代码操作创建其的外围类的对象.所以你可以认为内部类提供了某种进入其外围类的窗口. java ...

  9. 夯实Java基础系列18:深入理解Java内部类及其实现原理

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

最新文章

  1. Caffe学习系列(8):solver优化方法
  2. 红黑树(三)之 C++的实现
  3. autorunner测试java代码,AutoRunner自动化测试工具介绍
  4. C#如何将按钮置于按下状态
  5. 华为手机销量超过苹果,华为能算是全球第二大手机厂家吗?
  6. testflight开发者已将您从测试计划中移除_使用 TestFlight 测?试 App
  7. 4固定在底部_礼堂椅厂家教你如何固定座椅
  8. java中字节流的选择,求助,java中怎么用字节流读写汉字
  9. 如何发表高水平论文(转载,非常好)
  10. 推荐系统遇上深度学习(十一)--神经协同过滤NCF原理及实战
  11. MySQL笔记(一)创建数据库、创建表、修改表、删除表,以及建立约束
  12. centos mysql 修改mysql用户密码
  13. 开源OS FreeBSD 中 ftpd chroot 本地提权漏洞 (CVE-2020-7468) 的技术分析
  14. Java:JSON解析工具-org.json
  15. 韦东山驱动视频笔记——6.输入子系统之编写驱动程序
  16. 三色SM认证人脸动态视频制作教程
  17. 今天开始开发竞争情报系统了,在这里做个记录
  18. android截视频播放器,Android视频播放器VPlayer升级:新增截图功能
  19. 每一个赞扬背后都有一两个“慕名而来”,而每一个抱怨背后都有100个“弃你而去”。
  20. MC34063A MC34063 贴片SOP-8 变换器控制芯片 电流0.8A 1.2A 1.5A

热门文章

  1. Win32下内存分配简单示例 - 使用CFree
  2. 图解net use 命令使用示例
  3. SQL Server 入门复习(2008)图解
  4. 常用的webpack 配置
  5. mvp 在 flutter 中的应用
  6. PriorityBlockingQueue用法
  7. 配置tomcat8数据源(采用局部数据源方式)
  8. 【bzoj1195】[HNOI2006]最短母串 AC自动机+状态压缩+BFS最短路
  9. JavaWeb学习总结(五十二)——使用JavaMail创建邮件和发送邮件
  10. HDU 1394 Minimum Inversion Number(线段树的单点更新)