美文网首页
Java基础-12 内部类

Java基础-12 内部类

作者: 往南渡 | 来源:发表于2017-03-24 17:30 被阅读0次
java-12.jpg

内部类: 在一个类的内部定义另外一个类,那么另外一个类则称作为内部类 。

内部类的class文件名: 外部类$内部类.class

成员内部类:

成员内部类的访问方式:
        方式一: 在外部类提供一个方法创建内部类的对象进行访问。
        
        方式二:在其他类中直接创建内部的对象进行访问。
                格式: 
                    外部类.内部类  变量名  = new 外部类().new 内部类();
    
        注意:静态成员内部类在其他类创建对象的格式:
                    外部类.内部类  变量名  =  new 外部类.内部类();

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

应用场景: 我们在描述A事物的时候,A事物内部还维护了另外一个B事物,
而且B事物还必须 要访问到A事物的成员,那么这时候我们就可以使用内部类描述B事物。

图形化界面编程

 成员内部类要注意的细节:
     1. 内部类可以直接访问外部类的所有成员。
     2. 内部类与外部类存在同名的成员时, 在内部类中默认是访问内部类的成员, 可以通过"外部类.this.成员"进行指定访问外部类的成员。
     3. 私有的成员内部类只能通过在外部类提供一个公共的方法进行访问。 在其他类无法访问。
     4.  如果一个成员内部类定义了静态的成员,那么该类也必须使用static修饰。

    疑问:为什么如果一个成员内部类定义了静态的成员,那么该类也必须使用static修饰 ???
        
        静态的成员变量是不依赖对象而存在的

//外部类 new Outer().Inner.x
class Outer{

 String name = "外部类";
//成员内部类
static  class Inner{
    static  int x = 10;
    String name = "内部类";
    public void print(){
        System.out.println("这个是内部类的print方法:"+name); //默认访问时内部类,
    }
}

//外部类
public void newInstance(){
    Inner inner = new Inner();
    inner.print();
}

}

//其他类
class Demo
{

public static void main(String[] args) 
{
    
    Outer outer = new Outer();
    outer.newInstance();
    System.out.println("x:"+Outer.Inner.x);
    //创建内部类对象
    Outer.Inner inner = new Outer.Inner();
    inner.print();
}

}

相关文章

  • 回归Java基础,详解 Java 内部类

    回归Java基础,详解 Java 内部类

  • Java基础-12 内部类

    内部类: 在一个类的内部定义另外一个类,那么另外一个类则称作为内部类 。 内部类的class文件名: 外部类$内部...

  • 在Alibaba广受喜爱的“Java突击宝典”简直太牛了

    0-1年:夯实基础 1.Java基础(Java异常分类及处理+Java反射+Java注解+Java内部类+Java...

  • Java 中的方法内部类

    Java 中的方法内部类 方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内...

  • PHP转JAVA的记录

    Java 数组 内部类 内部类的创建:内部类可以对包内其他类隐藏想实现一个接口时, 不想新建类文件 内部类可以访问...

  • 2018-12-15

    Day08、java基础补充 内部类,代码块,静态导包1.内部类 1.1.内部类最大好处在于:能直接访问外部类的私...

  • java内部匿名类

    前言:java基础的编写类的时候,会觉得很匿名内部类很神秘.普通的java文件会被编译成class,那内部类和匿名...

  • 软帝学院:80道java基础部分面试题(一)

    11道java基础部分面试题 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相...

  • Java内部类

    Java内部类,简单来说就是将一个类定义在另一个类或者方法里面,主要分为成员内部类,局部内部类,匿名内部类和静态内...

  • [Java基础] 外部类, 内部类

    外部类 我们在创建类的时候,创建的 .java 文件(源文件)的文件名必须和我们要创建的类的名字一样。而这个我们创...

网友评论

      本文标题:Java基础-12 内部类

      本文链接:https://www.haomeiwen.com/subject/xdoxottx.html