内部类

原创 2016年08月29日 11:15:07

1.定义:定义在另一个类内部的类叫内部类。

2.分类:成员内部类和局部内部类

   注:内部类生成的class文件名字为外部类$内部类

3.成员内部类的访问方式

     a.内部类可以直接访问外部类的成员属性

     b.外部类可以通过成员方法访问内部类的成员属性

          注意:1.在外部类访问内部类时,需要在外部类的成员函数中创建一个内部类的对象,才可以访问内部类的成员属性

                      2.在其他类中需要访问内部类的属性时需要创建一个内部类的对象   Outer.Inner inner = new Outer().new Inner();

4.优势:内部类作为外部类成员可以访问任意的外部类的成员变量;

5.私有的成员内部类只对外部内可见,其他类不能访问

6.如果内部内中含有静态的成员变量,那么内部类必须声明为静态的

   访问的形式为:Outer.Inner inner = new Outer.Inner();

7.
class Outer {
    int x = 20;
    class Inner {
        int x = 200;
        public void print(){
            System.out.println("成员变量为"+Outer.this.x);
        }
    }
}


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

类名.this可以访问当前的类的this对象


========================================================================================

局部内部类

1.定义:定义在外部类成员函数内部的类称为局部内部类;

2.访问方式:在外部类的成员函数中,创建一个内部类对象,访问内部类的属性和方法

3.局部内部类只能访问所在函数中final修饰的常量


匿名内部类

1.定义:没有类名的内部类

2.实现方式:继承一个类或者实现一个接口

3.格式:new 类名(){

}

内部类的单例模式

* 上面的单例实现存在小小的缺陷,那么 有没有一种方法,既能够实现延迟加载,又能够  * 实现线程安全呢?  *       还真有高人想到这样的解决方案了,这个解决方案被称为Lazy initial...
  • ygl6150373
  • ygl6150373
  • 2016年11月20日 16:39
  • 859

JAVA和C++内部类

JAVA和C++内部类的异同
  • qq78442761
  • qq78442761
  • 2016年11月21日 22:52
  • 470

java内部类常见面试题汇总

1.根据注释填写(1),(2),(3)处的代码 public class Test{ public static void main(String[] args){ /...
  • tomcat_2014
  • tomcat_2014
  • 2016年04月18日 17:13
  • 2805

java内部类的四大作用

放在一个类的内部的类我们就叫内部类。 二、 作用 1.内部类可以很好的实现隐藏  一般的非内部类,是不允许有 private 与protected权限的,但内部类可以 2.内部类拥有外围类的所...
  • mid120
  • mid120
  • 2016年12月14日 19:25
  • 3441

Java 创建内部类实例

编程中需要访问内部类,写C习惯了Java方式多少有些生硬。 其实很简单: 1 拥有内部类的一个类 public class B{ public void showData() { ...
  • xiaoleiacm
  • xiaoleiacm
  • 2016年03月01日 15:28
  • 2784

java内部类的OC实现方法

http://blog.sina.com.cn/s/blog_6c0573910100vfri.html java内部类的OC实现方法 (2011-12-17 11:49:17)转载...
  • smilebigdear
  • smilebigdear
  • 2015年09月09日 15:22
  • 947

神奇的C#内部类作用解读

C#内部类,一般是声明为Private,如果声明public意义不大,下面给出Demo public class LearnInnerClass { private bool ...
  • zhuqinfeng
  • zhuqinfeng
  • 2014年12月26日 22:50
  • 414

C++之内部类

1. 内部类:如果一个类定义在另一个类的内部,这个内部类就叫做内部类。注意此时这个内部类是一个独立的类,它不属于外部类,更不能通过外部类的对象去调用内部类。外部类对内部类没有任何优越的访问权限。 即说...
  • u013696062
  • u013696062
  • 2014年11月04日 17:02
  • 5320

UML 表示类的内部类的方式

内部类在 UML 中以一个带十字的圆圈的关联标记来表示。 eg :   匿名内部类的构造型有 >...
  • wujiang88
  • wujiang88
  • 2016年01月19日 15:57
  • 1640

【spring教程之六】spring注入内部类

1、首先就是内部类的声明 package com.test.pro; public class Singer { private Load load; //调用内部类 public v...
  • jianghuihong2012
  • jianghuihong2012
  • 2015年03月21日 12:37
  • 2520
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:内部类
举报原因:
原因补充:

(最多只允许输入30个字)