成员内部类

/*
内部类:一个类定义在另外一个类的内部,那么该类就称作为内部类。

内部类的class文件名: 外部类$内部类.  好处:便于区分该class文件是属于哪个外部类的。

内部类的类别:

    1. 成员内部类:

            成员内部类的访问方式:

                    方式一:在外部类提供一个方法创建内部类的对象进行访问。

                    方式2二:在其他类直接创建内部类的对象。 格式:外部类.内部类  变量名 = new 外部类().new 内部类();

            注意: 如果是一个静态内部类,那么在其他类创建 的格式:
                    外部类.内部类  变量名 = new 外部类.内部类();

           内部类的应用场景: 我们在描述A事物的时候,发现描述的A事物内部还存在另外一个比较
           复杂的事物B时候,而且这个比较复杂事物B还需要访问A事物的属性等数据,那么这时候
           我们就可以使用内部类描述B事物。

           比如: 人--->心脏

           class 人{

            血

            氧气

            等....

            class 心脏{

            }        

           }

           内部类的好处:内部类可以直接访问外部类的所有成员。

            内部类要注意的细节:
                1. 如果外部类与内部类存在同名的成员变量时,在内部类中默认情况下是访问内部类的成员变量。
                   可以通过"外部类.this.成员变量名" 指定访问外部类的 成员。
                2. 私有的成员内部类只能在外部类提供一个方法创建内部类的对象进行访问,不能在其他类创建对象了。
                3. 成员内部类一旦出现了静态的成员,那么该类也必须 使用static修饰。

    局部内部类:

*/

//外部类
class Outer{

    //成员变量
    int x = 100; // Outer.class文件被加载到内存的时候存在内存中。  静态的成员数据是不需要对象存在才能访问。

    //成员内部类
    static    class Inner{      

        static    int i = 10;

        public void print(){
            System.out.println("这个是成员内部类的print方法!"+i);
        }
    }

    //在外部的方法中创建了内部类的对象,然后调用内部 方法。
    public void instance(){
        Inner inner = new Inner();
        inner.print();
    }

}

//其他类
class Demo4
{
    public static void main(String[] args)
    {
        /*
        System.out.println(Outer.Inner.i);

        Outer outer = new Outer();
        outer.instance();

        Outer.Inner inner = new Outer().new Inner();
        inner.print();
        */

        Outer.Inner inner = new Outer.Inner();
        inner.print();
    }
}
时间: 2024-12-08 22:27:40

成员内部类的相关文章

Java学习(十六)、成员内部类,静态内部类,匿名内部类,局部内部类

定义:将一个类定义在另一个类的内部.内部的类称为内部类; public class Outer{ class inner{ //省略 } } 特点: ①   内部类可以很好的实现隐藏,可以使用protected,private修饰符; ②   内部类可以直接访问外部类的所有成员,包括私有成员; ③   外部类不能直接访问内部类的成员,必须首先要建立内部类的对象才能访问; ④   内部类可以解决一些问题,比如间接的去实现多继承.可以避免修改接口而实现同一个类中两种同名方法的调用; 成员内部类及应用

Java内部类小程序(成员内部类,静态内部类,匿名内部类)

1 /** 2 * 测试java内部类(成员内部类,静态内部类,匿名内部类) 3 * 局部内部类不常用,就不写了. 4 * @package :java05 5 * @author shaobn 6 * @Describe : 7 * @Time: 2015-9-6 下午8:32:38 8 */ 9 public class TestInner { 10 11 /** 12 * @author shaobn 13 * @Describe : 14 * @param args 15 * @Time

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() {

Java内部类详解--成员内部类,局部内部类,匿名内部类,静态内部类

说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉.原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法.今天我们就来一探究竟.下面是本文的目录大纲: 一.内部类基础 二.深入理解内部类 三.内部类的使用场景和好处 四.常见的与内部类相关的笔试面试题 若有不正之处,请多谅解并欢迎批评指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/p/3811445.html 一

Java中的内部类(成员内部类、静态内部类、局部内部类、匿名内部类)

Java中的内部类(成员内部类.静态内部类.局部内部类.匿名内部类) 神话丿小王子的博客主页 我们先看这样一段话:人是由大脑.肢体.器官等身体结果组成.而组成我们人体的心脏它也有自己的属性和行为(血液.跳动),显然,此处不能单方面用属性或者方法表示一个心脏了,而需要一个类,但是这个类要依赖于人这个类存在(因为心脏不能脱离人体而存活,当然不考虑现今社会的发达科技,只从正常情况下来说),所心脏以需要写在人类的内部.内部类就相当于其中的某个器官之一. 首先看看什么是内部类:在类的内部定义另一个类.没错

【幻化万千戏红尘】qianfengDay10-java基础学习:成员内部类、静态内部类、局部和匿名内部类,设计模式之简单工厂模式

课程回顾: 接口:1.属性:public\static\final2.方法:public\abstract 多态:1.静态化(编译时)多态重载2.动态化(运行时)多态重写对象转型 1.向上转型 2.向下转型 今日内容:内部类:定义在类的内部的类1.成员内部类格式:[修饰符] class 类名 { }内部不能有静态的属性和方法,可以访问外部类的属性,也可以调用外部类的方法 在静态方法中的使用格式:外部类 外对象=new 外部类();成员内部类 对象名=外对象.new 成员内部类(); 2.静态内部

黑马程序员————类的第五个成员内部类

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 我们在通过java语言描绘事物的时候,会遇到事物里面还有事物,而里面的事物还会用到外面事物的一些属性.就好像看似单一的物体实则里面还有很多看似独立的分支,但却又要用到这个物体的一些属性与方法.就好像大自然里面的万物,每个看似独立却又息息相

Java内部类——成员内部类

成员内部类的意思就是,一个外层类里面包含着一个非static的class,举例如下: class OuterClass { //变量,函数定义... class InnerClass { //变量,函数定义... } } 关于成员内部类的各种使用情况: 1.成员内部类不能定义静态成员,原因如下: 对于java类加载顺序我们知道,首先加载类,执行static变量初始化,接下来执行对象的创建,如果我们要执行代码中的变量i初始化,那么必须先执行加载OuterClass,再加载InnerClass,最后

Java 中的成员内部类

内部类中最常见的就是成员内部类,也称为普通内部类.我们来看如下代码: 运行结果为: 从上面的代码中我们可以看到,成员内部类的使用方法: 1. Inner 类定义在 Outer 类的内部,相当于 Outer 类的一个成员变量的位置,Inner 类可以使用任意访问控制符,如 public . protected . private 等 2. Inner 类中定义的 test() 方法可以直接访问 Outer 类中的数据,而不受访问控制符的影响,如直接访问 Outer 类中的私有属性a 3. 定义了成