Java 基础----内部类

今天在复习Java的相关知识的时候遇到了内部类这个概念,小小的总结一下,下面就用一句话来总结Java中的内部类:

Java 中内部类包括四种:静态内部类,成员内部类,局部内部类,匿名内部类

那么问题来了:如何区分这几种类呢?

很简单:

1、静态内部类定义在类中,用static关键字修饰,并且只能访问外部类(相对于内部类,自然有个外部类)的静态成员和静态方法。

2、成员内部类定义在类中,和静态内部类的区别就在于么有static修饰,能够访问外部类的全部的属性和方法,不论是否有static修饰。

3、局部内部类定义在类中的方法中,只能访问外部类的final的成员变量和成员方法。

4、匿名内部类定义在表达式中(我是这样认为的),匿名内部类没有类名,没有class关键字也没有extends和implements等关键字修饰,一般情况会隐式地继承一个父类或实现一个接口。

以下是实例:

静态内部类:

public class Test
{
private static int id = 1;
private String name = "yxq";
public String getName()
{
return this.name;
}

static class static_class
{
private static int static_id = 0;

public void execute()
{
System.out.println(static_id+" : "+Test.id);
}
}


成员内部类:

public class Test
{
private static int id = 1;
private String name = "yxq";
public String getName()
{
return this.name;
}

class inner_class
{
private String name = "inner_class";
public void execute()
{
System.out.println(name);
}
}

局部内部类:(没有写外部类Test())

        public void localClassMethod()
{
final int local = 2;
class local
{
private String local_name = "local";
public void out()
{
System.out.println(local+":"+age+":"+local_name);
}
}
new local().out();
}

匿名内部类:(这个从网上抄了一个没有自己写)

button.addActionListener(new ActionListener(){
         //实现接口中的方法
         @Override
         public void actionPerformed(ActionEvent e) {
             System.out.println("使用匿名内部类实现ActionListener接口");
         }
     });

好了,这样概念就介绍完了,问题又来了那就是在外部类的main函数中该如何使用这些类呢?

我们继续:

使用上面的例子,下面是以上几个类的使用方法:

 public static void main(String[] args)
{

                //静态内部类
Test.static_class ts = new Test.static_class();
ts.execute();
//成员内部类
Test.inner_class ti = new Test().new inner_class();
ti.execute();
//局部内部类的使用在方法中,上面的例子中已经提到了。

//匿名内部类
t.localClassMethod();
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值