java 内部类 静态内部类_java外部类和内部类

java 内部类 静态内部类_java外部类和内部类占坑中。。参考:从一道面试题开始说起枚举、动态代理的原理

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

今天我们分析内部类和静态内部类的区别,首先我们写一个InnerClassTest类,其中有一个内部类InnerClass和静态内部类StaticInnerClass

public class InnerClassTest { 
   
    private int aNum = 1;

    public static void main(String[] args) { 
   
        new InnerClassTest().a();
    }

    private void a() { 
   
        new InnerClass().innerMethod();
        new StaticInnerClass().innerMethod();
    }

    void b() { 
   

    }

    private void c() { 
   

    }

    public void d(){ 
   

    }

    private class InnerClass { 
   
        private void innerMethod() { 
   
            c();
            aNum = 2;
        }
    }
    
    static class StaticInnerClass { 
   
        private void innerMethod() { 
   
            d();
        }
    }
}

静态内部类报错

分析

  1. 外部类能够调用内部类的私有方法new InnerClass().innerMethod()new StaticInnerClass().innerMethod().
  2. 倒数5行,StaticInnerClassinnerMethod()报错,显示d()

Q:什么是内部类?有什么作用?静态内部类和非静态内部类的区别?

总结

内部类就是定义在另外一个类里面的类。它隐藏在外部类中,封装性更强,不允许除外部类外的其他类访问它;但它可直接访问外部类的成员。

静态内部类和非静态内部类的区别有:

  1. 静态内部类是指被声明为static的内部类,可不依赖外部类实例化;而非静态内部类需要通过生成外部类来间接生成。
  2. 静态内部类只能访问外部类的静态成员变量和静态方法,而非静态内部类由于持有对外部类的引用,可以访问外部类的所用成员

参考:

从一道面试题开始说起 枚举、动态代理的原理
java内部类有什么好处?为什么需要内部类?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184322.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java 缓存 工具类

    java 缓存 工具类

    2022年2月23日
    58
  • 1024快乐

    1024快乐1024程序员节日快乐转载于:https://www.cnblogs.com/canmeng/p/9842898.html

    2022年6月24日
    30
  • Bitblt函数(API)详解[通俗易懂]

    Bitblt函数(API)详解[通俗易懂]Bitblt作用将某一内存块的数据传送到另一内存块,前一内存块被称为"源",后一内存块被称为"目标"图象程序开发者使用Blit的函数在内存中将某页面上的一幅位图

    2022年7月2日
    40
  • linux shell脚本编写实例_常用的shell脚本

    linux shell脚本编写实例_常用的shell脚本LINUXShell脚本编程实例详解(一)上ping命令测试网段内主机的2例详解使用linux已经有10来年了但是一直止于各种服务器的搭建和环境的调优,能力不能得到提升,今天突然下定决心学习Shell脚本编程,因此以网上广为流传的《Shell脚本100例》为基础学习、实验和笔记。废话不说上栗子。使用vimshell100-scanip-1.sh命令创建脚本文件#!/bin…

    2022年10月3日
    2
  • eclipse中文插件如何安装_eclipse不显示svn插件

    eclipse中文插件如何安装_eclipse不显示svn插件1、在eclipse中下载插件,地址如下:Name:Subclipse1.2.x(Eclipse3.2+)   URL: http://subclipse.tigris.org/update_1.2.xName:Subclipse1.0.x(Eclipse3.0/3.1)   URL: http://subclipse.tigris.org/up

    2022年10月11日
    4
  • 机房建设效果图制作|机房鸟瞰图设计|教程文章

    机房建设效果图制作|机房鸟瞰图设计|教程文章因为时间关系,这里只做简易分析,如图所示案例,首先客户得提供资料,例如CAD布置图或是手绘图纸等。这是第一步。接下来,就需要根据资料和客户沟通,什么地方是什么东西东西,有什么需要特别注意的地方吗,地面,墙面等是什么材质。剩下的基本就是建模和渲染了。建模的时候要注意,一定要注意房间的高度,因为将来还有吊顶等。一般而言,内部房间的地面材质都是防静电地板,而墙面基本就是刷白或是吸音板铝塑板之类。

    2022年6月2日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号