美文网首页
成员内部类

成员内部类

作者: sywaj | 来源:发表于2018-06-25 12:37 被阅读0次

大部分时候,类被定义成一个独立的程序单元,在某些情况下,也会把一个类放在另一个类的内部定义,这个定义在其它类内部的类就叫内部类。包含内部类的类也被称为外部类。成员内部类可以使用外部类的成员变量和成员方法, 不管用什么权限修饰,不管是private还是public都可以使用,因为,这是在内部类的内部使用。
内部类的作用:
1:内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其它类访问该类。
2:内部类成员可以直接访问外部类的私有数据,因为内部类被当成其外部类成员,同一个类的成员之间可以互相访问,但是外部类不能访问内部类的内容。
3:匿名内部类适合用于创建仅需一次使用的类。

下面是一个内部类的例子:
class Outer { //外部类

class Inner {    //内部类
    
    public void testInner() {
        System.out.println("内部类的成员方法");
    }
    
}

public void testOuter() {
    System.out.println("外部类的成员方法");
}   

}

在外部类中创建内部类对象,只需要在外部类中的成员函数中创建即可

class Outer { //外部类

class Inner {    //内部类
    
    public void testInner() {
        System.out.println("内部类的成员方法");
    }
    
}

public void testOuter() {
    System.out.println("外部类的成员方法");
}   
    //在此添加一个创建内部类对象的方法
   public void createInnnerClass() {
    Inner inner = new Inner();
    inner.testInner();
}

}

在Outer类的外部创建Inner类的对象
格式如下:
外部类名.内部类名 内部类对象名 = new 外部类名().new 内部类名();
例如:
Outer.inner inner = new Outer().new Inner();
代码如下:

class Demo1 {

  public static void main(String[] args) {
              Outer.Inner inner = new Outer().new Inner();
      inner.testInner();
}

}
如果内部类和外部类存在同名的成员变量,这里默认是就近原则,使用的是内部类的成员变量
如果想要使用外部类的成员变量的:
格式:
外部类名.this.同名成员变量;
外部类名.this.同名成员方法(参数列表);

相关文章

  • 内部类

    成员内部类 局部内部类(定义在方法内和定义在作用域内的类) 匿名内部类

  • Java学习——内部类

    内部类 一,成员内部类(包括静态内部类和非静态内部类) 非静态内部类可以直接访问外部类的成员,反之则不行 非静态内...

  • Java 内部类

    内部类包括成员内部类、方法内部类、*静态内部类、匿名内部类*。 内部类的作用 由于内部类的实现和外部类没有关系,内...

  • 2019-02-01——内部类

    1.静态内部类和成员内部类的用法?2.内部类的修饰符有什么用? 一.关于内部类的分类内部类广义上可分为四种:成员内...

  • java se 成员内部类

    一个类内部包含另一个类身体与心脏分类:1、成员内部类2、局部内部类(匿名内部类) 1、成员内部类 注:内用外可直接...

  • java学习笔记(十三)内部类

    1、概述 内部类即在类的内部在创建一个类 分为成员内部类(直接在类中创建) 局部内部类(在成员方法中创建) 匿名内...

  • Java 内部类、静态内部类、方法内部类(未完待续)

    内部类 什么是内部类?内部类其实就是在一个类中创建的类。内部类有四种: 成员内部类 静态内部类 局部内部类 匿名内...

  • 面试官:谈谈你对Java内部类的理解?

    java中的内部类可以分为普通内部类(成员内部类),静态内部类,局部内部类和匿名内部类。 成员内部类 成员内部类就...

  • Java内部类分类及使用

    1 内部类分类 1.1 成员内部类 成员内部类像是外部类一个成员。成员内部类可以无条件地访问外部类的所有成员属性和...

  • Java基础内部类与Static,final

    成员内部类,局部内部类,匿名内部类 非 静态成员内部类 非 静态成员内部类反编译class 静态内部类 静态内部类...

网友评论

      本文标题:成员内部类

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