java 如何实例化内部类_java之内部类详解

序言

有位小同学要我写一篇这个的总结,我说那好吧,那就动手写总结一下这个内部类的知识,感觉这个在面试中也会经常遇到,内部类、反射、集合、IO流、异常、多线程、泛型这些重要的基础知识大家都比较容易记不住。大概是自己平常用的比较少,所以经常性的会忘记,现在通过博文的方式记录下来,以后忘记可以回过头来自己看。

--WZY

一、什么是内部类

顾名思义,内部类就是在一个类的内部在定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对B类来说就是外部类了。

在一个类中有很多属性,比如、成员变量,成员方法,局部变量,静态方法等(这些区别应该知道把,如果不知道的应该先把这几个弄清楚,然后在继续往下看,对,说的就是你),那么这样一比较,B类在A类中的不同位置就可以被分为了不同的内部类了。总共有四种,

1、成员内部类

2、局部内部类

3、静态内部类

4、匿名内部类

现在看的一脸懵逼没关系,接下来我会一一讲解这四种内部类和用法及区别

二、成员内部类

1、什么是成员内部类?

例如:  Outer类中有一个私有的成员变量id、还有一个out方法。 在内部类Inner中只有一个in方法   (注明:写的类中没有具体意义,就是为了说明问题而写的)

//在A类中申明了一个B类,此B类就在A的内部,并且在成员变量的位置上,所以就称为成员内部类

public classOuter {private intid;public voidout(){

System.out.println("这是外部类方法");

}classInner{public voidin(){

System.out.println("这是内部类方法");

}

}

}

2、如何实例化成员内部类呢?

public classOuter {private intid;public voidout(){

System.out.println("这是外部类方法");

}classInner{public voidin(){

System.out.println("这是内部类方法");

}

}

}----------------------------------------------------------------

public classTest{

public static void main(String[] args) {

//实例化成员内部类分两步

//1、实例化外部类

Outer outObject = new Outer();

//2、通过外部类调用内部类

Outer.Inner inObject = outObject.new Inner();

//测试,调用内部类中的方法

inObject.in();//打印:这是内部类方法

}

}

分析:这个由外部类创建内部类对象不难理解把,想想如果你要使用一个类中方法或者属性,你就必须要先有该类的一个对象,同理,一个类在另一个类的内部,那么想要使用这个内部类,就必须先要有外部类的一个实例对象,然后在通过该对象去使用内部类。

3、成员内部类能做哪些事情?

·访问外部类的所有属性(这里的属性包括私有的成员变量,方法),例子大多数还是上面的内容,稍微改变一点点

public classOuter {private intid;public voidout(){

System.out.println("这是外部类方法");

}classInner{public voidin(){

System.out.println("这是内部类方法

你可能感兴趣的:(java,如何实例化内部类)