1、 成员内部类的修饰符:
    private 为了保证数据的安全性
    static 为了方便访问数据
  注意:静态内部类访问的外部类数据必须用静态修饰。

  案例:我有一个人(人有身体,身体内有心脏。)

  1. class Body {
  2. private class Heart { //加private 不让直接访问
  3. public void operator() {
  4.       System.out.println("心脏搭桥");
  5. }
  6. }
  7.  
  8. public void method() {
  9.     if(如果你是外科医生) { //进行校验
  10.         Heart h = new Heart();
  11.         h.operator();
  12. }
  13. }
  14. }
  15.  
  16. 按照我们刚才的讲解,来使用一下
  17. Body.Heart bh = new Body().new Heart();
  18.       bh.operator();
  19. //加了private后,就不能被访问了,那么,怎么玩呢?
  20.         Body b = new Body();
  21.         b.method();

成员内部类被静态修饰后的访问方式是:
      格式1:外部类名.内部类名 对象名 = new 外部类名.内部类名();
      格式2: 外部类名.内部类名.所要调用的静态方法名();
        如:Outer.Inner.show2();

  1. class Outer {
  2.     private int num = 10;
  3.     private static int num2 = 100;
  4.  
  5. //内部类用静态修饰,
  6. -------是因为内部类可以看成是外部类的成员
  7.     public static class Inner {
  8. 8     public void show() {
  9.         //System.out.println(num);
  10.          System.out.println(num2);
  11. }
  12.  
  13. public static void show2() {
  14.         //System.out.println(num);
  15.         System.out.println(num2);
  16. }
  17. }
  18. }
  19.  
  20. class InnerClassDemo4 {
  21.       public static void main(String[] args) {
  22.         //使用内部类
  23.         // 限定的新静态类
  24.         //Outer.Inner oi = new Outer().new Inner();
  25.         //oi.show();
  26.         //oi.show2();
  27.  
  28.         //成员内部类被静态修饰后的访问方式是:
  29.         //格式:外部类名.内部类名 对象名 = new 外部类名.内部类名();
  30.           Outer.Inner oi = new Outer.Inner();
  31.           oi.show();
  32. 32           oi.show2();
  33.  
  34. 34         //show2()的另一种调用方式
  35.           Outer.Inner.show2();
  36.     }
  37. }

java9-7 成员内部类的修饰符的更多相关文章

  1. java基础之修饰符和内部类

    1.java修饰符 /* 修饰符: 权限修饰符:private,默认的,protected,public 状态修饰符:static,final 抽象修饰符:abstract 类: 权限修饰符:默认修饰 ...

  2. 包、修饰符、内部类、匿名内部类(java基础知识十)

    1.package关键字的概述及作用 * A:为什么要有包     * 将字节码(.class)进行分类存放  * B:包的概述     *   * C:包的作用     * 包名要定义在第一行,   ...

  3. java自学第3期——继承、多态、接口、抽象类、final关键字、权限修饰符、内部类

    一.继承: 关键字extends /* 定义一个父类:人类 定义父类格式:public class 父类名称{ } 定义子类格式:public class 子类名称 extends 父类名称{ } * ...

  4. 类的高级:访问修饰符、封装、静态类成员static、内部类;

    访问修饰符: 公开访问(public):对所有子类,非子类访问: 受保护的(protected):只有同包子类.非子类.不同包子类可访问,不同包非子类不可访问: 私有的(private):只有本类可访 ...

  5. Java中各种(类、方法、属性)访问修饰符与修饰符的说明

    类: 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 名称 说明 备注 public 可以被本项目的所 ...

  6. static,final,包,访问修饰符,内部类

    static 关键字可以修饰成员变量,被static修饰的成员变量归属于类static关键字可以修饰成员方法:被static修饰的成员方法可以直接使用类名调用,也可以通过对象调用,建议使用类名.非静态 ...

  7. JAVA面向对象-----访问修饰符

    访问修饰符是用来控制类.属性.方法的可见性的关键字称之为访问修饰符. 1.public 一个类中,同一包中,子类中,不同包中 2.protected 一个类中,同一包中,子类中 3.default 一 ...

  8. java 匿名对象,内部类,修饰符,代码块

    匿名对象是在建对象时只有创建对象的语句方法而没有把对象的地址赋值给变量,匿名对象只能调用一次方法,想再调用时需要再创建一个新的匿名对象 创建普通对象:Person p =new Person(); 创 ...

  9. Java基础内部类、包的声名、访问修饰符、代码块整理

    内部类 14.1内部类概念 将类写在其他类的内部,可以写在其他类的成员位置和局部位置,这时写在其他类内部的类就称为内部类.其他类也称为外部类. 内部类分为成员内部类与局部内部类. 我们定义内部类时,就 ...

随机推荐

  1. Android的新虚拟机ART

  2. ADO.NET 实体类和数据访问类

    SQL数据库字符串注入攻击:需要使用cmd.Parameters这个集合占位符: @key 代表这个位置用这个占位符占住了 Parameters这个集合中将此占位符所代表的数据补全 cmd.Param ...

  3. 快速生成PDF书签

    PDF没有书签,就像吃饭没有筷子一样,虽然可以将就,但总不是很方便!现介绍一种快速生成书签的方法. 第一步,打开excel,制作书签目录,前面的一列是书签名称(黑色框),后面一列是PDF页码(红色框) ...

  4. OC中的复合

    #import <Foundation/Foundation.h> #import "Car.h" int main(int argc, const char * ar ...

  5. iOS-绘图(Quartz2D)的简单使用(原创)

    前言 附上绘图demo--https://github.com/yangfangxue/YFX_Quartz-2D 什么是Quartz2D? Quartz 2D是一个二维图形绘制引擎,支持ios环境和 ...

  6. 在virtualbox下使用vm映像文件

    virtualbox可以直接打开vmdk 创建虚拟机时先不要创建虚拟硬盘. 虚拟机创建成功后,在设置窗口,点击[存储],添加虚拟硬盘,点击选择现有的虚拟盘. 参考链接

  7. iOS网络-03-NSURLSession与NSURLSessionTask

    简介 NSURLSession也能完成网络请求 NSURLConnection在iOS9中不推荐使用,NSURLSession是iOS9中推荐使用的网络请求方式 NSURLSession需要与NSUR ...

  8. TXT记事本转换PDF文件

    使用的方式为,读取TXT记事本的内容,然后写入创建的PDF文件. static void Main(string[] args) { const string txtFile = "D:\\ ...

  9. 如何使用GOOGLE高级搜索技巧

    如何使用GOOGLE高级搜索技巧 一,GOOGLE简介 Google(www.google.com)是一个搜索引擎,由两个斯坦福大学博士生Larry Page与Sergey Brin于1998年9月发 ...

  10. 读书笔记——Windows环境下32位汇编语言程序设计(3)一些基础知识

    声明函数用proto 定义函数用proc 局部变量只能定义,不能赋初值,类型不能用缩写. 全局变量可以定义的时候赋初值,默认值为0. 在invoke中,参数可以使用addr取址. sizeof 字节长 ...