为了账号安全,请及时绑定邮箱和手机立即绑定

Java基础之内部类1-基础

标签:
Java

简言

对于部分人来说,可能内部类只是知道,具体怎么用可能都搞不清楚。在回头看java中的葵花宝典的时候,还是想写一写供大家参考一下。看到这,大牛请飘过吧

创建内部类

// Animal.java
public class Animal {

    private int type = 0;
    private String name = "default";

    public int getType() {
        return type;
    }

    class Bird {
        private int type = 1;

        public int getType() {
            return type;
        }

        public String getName() {
            String name1 = name;
            String name2 = Animal.this.name;
            return name;
        }
    }

    static class Fish {
        private int type = 2;

        public int getType() {
            return type;
        }
    }
}

// InnerClassMain.java
public class InnerClassMain {
    public static void main(String[] args) {
        Animal animal = new Animal();
        System.out.println(animal.getType());

        Animal.Bird bird = animal.new Bird();
        System.out.println(bird.getType());

        Animal.Fish fish = new Animal.Fish();
    }
}

创建内部类,这个相信大家都会,但是具体如何使用呢?可能还真有部分人是模糊的,说不会吧,知道怎么回事,但是说会吧,可能真写不出来

在main函数里面存在两种创建方式

Animal.Bird bird = animal.new Bird();
Animal.Fish fish = new Animal.Fish();

这两种方式的区别就是一个是通过对象animal创建出来的,一种是通过new 类.类的形式创建的,回头看看这两个的区别在哪里

class Bird {}
static class Fish {}

唯一的区别就是Fish是静态内部类,而Bird只是内部类

权限

其他类访问内部类,要看内部类的修饰符是什么,private永远不被访问(这是神器,后面介绍),public,protected,<default>,下面以public来说

其他类要访问内部类必须先通过外部类(非其他类),没有外部类是访问不到内部类的

具体访问方式上面已经介绍过

现在说一下内部类访问外部类(非其他类),可以访问外部类的哪些元素?答案是:ALL
可以访问外部类的全部资源属性,包括private类型的。内部类拥有对外部类所有的访问权限。这是因为当某个外部类对象创建一个内部类时,内部类必定会捕获一个指向那个外部类的引用。在访问外部类成员的时候,都是通过那个引用来进行访问

关于内部类的详细文章可以参考目录 [smxknife's Java内部类]

点击查看更多内容
2人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
全栈工程师
手记
粉丝
47
获赞与收藏
343

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消