java内部类(一)

内部类

类的五大组成:属性,方法,构造器,代码块,内部类

内部类一般没有构造方法

内部类的分类:
定义在外部类局部位置上(比如方法内):
1)局部内部类(有类的名字)
2)匿名内部类(没有名字,重点)

定义在外部类成员(属性或者方法)的位置上的:
1)成员内部类(没有用static修饰)
2)静态内部类(使用static修饰)

局部内部类

例:

class outer {
private int x = 10;

public void fun1() {
    //局部内部类通常定义在方法中
    class outter{
        public void fun2(){
            //内部类可以访问外部类的私有属性与私有方法
            System.out.println(x);

        }
    }
}
}

不能添加访问修饰符,但可以用final修饰,修饰后就不可被继承,并仅仅可在定义他的方法或代码块中作用。

匿名内部类!!!!!!:

特点:匿名类没有名字,同时还是一个对象

当一个类只需要用一次后面再也不用了,此时可以使用匿名内部类来简化开发。

例:

class test{
    animal a = new animal() {
        @Override
        public void cry() {
            System.out.println("叫。。。");
        }
    }
}

interface animal{
    public void cry();
}

并没有单独用一个类来实现animal接口,直接使用匿名类来完成功能。
系统在创建类之后还会创造一个对象,并且吧地址返回给实例。

例:

class dog {
    private String name;

    public void dog1() {
        System.out.println("我是dog");
    }
}

class test{
    dog kele = new dog(){
        @Override
        public void dog1(){
            System.out.println("我是dog的子类");
        }
    };
}

匿名内部类可以直接当参数传递,当这个类你只需要用一次的时候这种方法就会变的简洁
例:

public class test2 {
    public static void main(String[] args) {
       fun(new IL() {
           @Override
           public void show() {
               System.out.println("show就对了!");
           }
       });
    }
    public static void fun(IL il){
        il.show();
    }
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值