手机
当前位置:查字典教程网 >编程开发 >Java >java中关于内部类的使用详解
java中关于内部类的使用详解
摘要:内部类访问规则•内部类可以直接访问外部类中的成员,包括私有。访问格式:外部类名.this•外部类要访问内部类必须创建...

内部类访问规则

•内部类可以直接访问外部类中的成员,包括私有。访问格式:外部类名.this

•外部类要访问内部类必须创建内部类对象。

•内部类在成员位置上,可以被成员修饰符修饰。

复制代码 代码如下:

public class InnerClassDemo1 {

public static void main(String[] args){

Outer ou =new Outer();

ou.method();// 4 3

Outer.Inner oi =new Outer().new Inner();

oi.function2();

}

}

class Outer{

private int x=3;

class Inner{

int x=4;

void function1(){

System.out.println(x);

System.out.println(Outer.this.x);

}

void function2(){

Outer.this.method();

}

}

public void method(){

Inner in =new Inner();

in.function1();

}

}

静态内部类

•内部类定义了静态成员,内部类必须是静态的。

复制代码 代码如下:

/*

注意:内部类定义了静态成员,内部类必须是静态的。

*/

class InnerClassDemo2

{

public static void main(String[] args)

{

new Outer.Inner().function();//创建静态内部类对象

}

}

class Outer

{

private static int x=5;

static class Inner//静态内部类 只能访问外部类的静态成员

{

void function()

{

System.out.println("inner:"+x);

}

}

}

局部内部类

•内部类定义在局部时,可以直接访问外部类中的成员。

•访问局部变量必须被final修饰。

复制代码 代码如下:

/*

内部类定义在局部时:可以直接访问外部类中的成员,因为还持有外类中的引用。

但是不可以访问它所在的局部中的变量,只能访问被final修饰的局部变量

*/

class InnerClassDemo3

{

public static void main(String[] args)

{

Outer out =new Outer();

out.method(7);

}

}

class Outer

{

int x=3;

public void method(final int a)

{

class Inner

{

void function()

{

System.out.println(a);

}

}

new Inner().function();

}

}

匿名内部类

•匿名内部类是内部类的简写格式。

•匿名内部类的前提:内部类必须继承一个类或者实现接口。

•匿名内部类不能创建构造函数。

复制代码 代码如下:

/*

匿名内部类

1.匿名内部类其实就是内部类的简写格式

2.定义匿名内部列的前提。

内部类必须是继承一个类或者实现接口

3.匿名内部类的格式:new 父类或者接口(){定义子类内容}

*/

class InnerClassDemo4

{

public static void main(String[] args)

{

Demo d=new Demo()

{

void show()

{

System.out.println("匿名内部类show方法");

}

void method()

{

System.out.println("匿名内部类method方法");

}

}.show();

d.method();

}

}

abstract class Demo

{

abstract void show();

}

【java中关于内部类的使用详解】相关文章:

java中对字符串每个字符统计的方法

java中"==" 与equals方法的使用

java N皇后实现问题解析

java集合框架的体系结构详细说明

java单向链表的实现实例

Java中的static静态代码块的使用详解

java equals函数用法详解

java中的匿名内部类详细总结

Java中 shuffle 算法的使用

基于java中BlockingQueue的使用介绍

精品推荐
分类导航