java9-7 成员内部类的修饰符

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     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           oi.show2();
33
34         //show2()的另一种调用方式
35           Outer.Inner.show2();
36     }
37 }
时间: 2024-10-24 02:34:20

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

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

1.package关键字的概述及作用 * A:为什么要有包     * 将字节码(.class)进行分类存放  * B:包的概述     *   * C:包的作用     * 包名要定义在第一行,     * 包名.*这个包下所有的类都可见     * 具体的类比较好,能提高效率 2.包的定义及注意事项 * A:定义包的格式 * package 包名; * 多级包用.分开即可* B:定义包的注意事项 * A:package语句必须是程序的第一条可执行的代码 * B:package语句在一个jav

修饰符-包-内部类-代码块执行顺序

1.访问权限修饰符     从大到小的顺序为:public--protected--default--private     private--只能在同一类中使用;     default--不用写出来,默认不加.可以被同一包中的类使用     protected--可以被不同包的子类使用     public--可以被不同包的其它类使用 2.各种修饰符的修饰对象(可修饰哪些:类/接口/方法/属性)(多个修饰符连用是可以没有顺序的!)     1)访问权限修饰符:public/default--

初来驾到学java修饰符的使用

年一过完学习起来特精神感受一下java修饰符的应用于区别 访问修饰符的使用权限:最大的是public修饰符的属性他可以在任意的地方调用 其次是protected修饰符它不除不能再非不同包的子类调用外其他的都可以 默认的修饰符不能再不同包之间调用 同包的情况下不同类子类非子类均可调用. privatie是私有的只能在本类中调用 包 同包 不同包 使用限制 关系 本类 子类 非子类 子类 非子类 private O X X X X 私有的 默认 O O O X X 默认 protected O O

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

类: 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 名称 说明 备注 public 可以被本项目的所有类访问(使用),其他项目若想使用本项目中的类,必须将本项目打包为jar包,然后加入到classpath中 public类必须定义在和类名相同的同名文件中 (default) 只能被同一个包中的类访问(使用) 默认的访问权限,可以省略此关键字,可以定义在和public类的同一个文件中 修饰符 名称

java类修饰符

java的修饰符有:权限修饰符:public.protected.default.private                修饰符:abstract.static.final public   使用对象:最广,类.接口.变量.方法    protected使用对象:变量.方法 注意:不能修饰类(外部类)    default  使用对象:类.接口.变量.方法.(即缺省,什么也不写)    private  使用对象:变量.方法 注意:不能修饰类(外部类) abstract使用对象:类.接口.

10_面向对象(类,抽象类,接口的综合练习、形参和返回值、包的概述和讲解、修饰符、内部类)

1:形式参数和返回值的问题(理解)    (1)形式参数:        类名:需要该类的对象        抽象类名:需要该类的子类对象        接口名:需要该接口的实现类对象    (2)返回值类型:        类名:返回的是该类的对象        抽象类名:返回的是该类的子类对象        接口名:返回的是该接口的实现类的对象    (3)链式编程        对象.方法1().方法2().......方法n();                这种用法:其实在方法1()

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

static 关键字可以修饰成员变量,被static修饰的成员变量归属于类static关键字可以修饰成员方法:被static修饰的成员方法可以直接使用类名调用,也可以通过对象调用,建议使用类名.非静态的方法只能通过对象才能调用静态的方法可以通过类名直接调用,也可以通过创建对象,使用对象名进行调用.静态方法中不能使用非静态的成员变量在非静态的方法中可以使用静态的成员变量静态的内容要优先与对象存在,当类加载的时候,会随着类的加载而存在于静态区中. 局部代码块分为局部代码块和构造代码块局部代码块:在方

JAVA笔记8__内部类/链表的实现/包装类、享元设计模式/包、访问修饰符

/** * 内部类:在一个类的内部中定义的类 * 1. class Outer{ * class Inner{} * } * 2. class Outer{ //方法内部类 * public void doSomething(){ * class Inner(){} * } * } * 2*:1.方法内部类只能在定义该内部类的方法中实例化 * 2.方法内部类对象不能使用该内部类所在方法的非final局部变量 * (原因:局部变量随着方法调用的结束而消失,而new出来的内部类对象的作用域是可以在方

黑马程序员_包、访问修饰符以及内部类

------- <a href="http://www.itheima.com" target="blank">android培训</a>.<a href="http://www.itheima.com" target="blank">java培训</a>.期待与您交流! ---------- 一.包:  1.定义包使用关键字:package: 1).注意事项: A.packag