前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java 内部类 静态内部类_java外部类和内部类

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

作者头像
全栈程序员站长
发布于 2022-11-07 02:20:13
发布于 2022-11-07 02:20:13
76900
代码可运行
举报
运行总次数:0
代码可运行

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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.cn/184322.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月8日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
内部类学习
在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。
全栈程序员站长
2022/07/09
2020
基础篇:JAVA内部类的使用介绍
1 四种内部类 成员内部类 静态内部类 局部内部类 匿名内部类 2 内部类的使用场景和优点 内部类的优点:每个内部类都能独立地继承一个类(实现多个接口),无论外部类是否已经继承或者实现,对于内部类都没有影响。内部类的存在使得Java的多继承机制变得更加完善 在开发设计中会存在一些使用接口很难解决的问题,而类却只能继承一个父类。这个时候可以利用内部类去继承其他父类,及implements多个接口能力来解决。内部类使得多重继承的解决方案变得更加完整 public class HashMap<K,V> exten
潜行前行
2020/12/11
5310
基础篇:JAVA内部类的使用介绍
【Java入门提高篇】Day9 Java内部类——静态内部类
弗兰克的猫
2018/01/09
5010
Java程序员必备基础:内部类解析
在Java中,可以将一个类的定义放在另外一个类的定义内部,这就是内部类。内部类本身就是类的一个属性,与其他属性 定义方式一致。
捡田螺的小男孩
2020/04/15
1.1K0
Java程序员必备基础:内部类解析
Java中的静态内部类_Effective Java 2.0_Item 2知识点
在Java中有静态代码块、静态变量、静态方法,当然也有静态类,但Java中的静态类只能是Java的内部类,也称为静态嵌套类。静态内部类的定义如下:
Tyan
2022/05/09
3270
java的内部类和静态内部类(嵌套类)
开发新项目,写Swager的mode的时候用到了嵌套Model,于是在代码中,出现了静态内部类。在codeReview的时候稍微和大家聊了一下。尤其是Static 修饰类和修饰对象和变量不一样呢?
袁新栋-jeff.yuan
2020/08/26
1.7K0
【JAVA-Day65】Java内部类深度解析
作为默语博主,深入研究Java内部类,揭示其关键概念和实际应用,为读者提供全面的内部类知识概览。在本博客中,我们将探索内部类的基本概念、语法结构,深入研究不同类型的内部类,比较内部类与普通类的关系,讨论内部类的实际应用场景,并通过面试题挑战读者对内部类的理解。
默 语
2024/11/20
1250
【JAVA-Day65】Java内部类深度解析
【说站】java内部类的两种类型
java内部类的两种类型 说明 1、内部类可分为:静态内部类和非静态内部类。 2、非静态内部类分为:成员内部类、方法内部类、匿名内部类等。 实例 public class ClassOuter {     private int noStaticInt = 1;     private static int STATIC_INT = 2;       public void fun() {         System.out.println("外部类方法");     }       public c
很酷的站长
2022/11/23
2180
【说站】java内部类的两种类型
静态内部类和内部类的区别_内部类不能定义为抽象类
参考静态内部类和非静态内部类的区别中提到的 正常情况下,你不能在接口内部放置任何代码,但嵌套类可以作为接口的一部分,因为它是static 的。只是将嵌套类置于接口的命名空间内,这并不违反接口的规则,我试验了一下 ,无论是静态类还是非静态类都可以写在接口里。
全栈程序员站长
2022/11/10
3730
静态内部类和内部类的区别_内部类不能定义为抽象类
JAVA静态内部类_java静态内部类实例化
  不知不觉,我正式入职到部门实习也有一周多的时间了,这段时间确实学到了不少东西。从大公司的办公、办事的流程准则,到程序员的日常研发工作和其中的注意事项,导师和同事们都很乐于帮助我融入这个新环境。   因为实习生不用加班,业余时间也比较多。便想着利用空闲时间来深入学习、总结一些平时工作中遇到的知识点和代码细节,把之前因为准备期末都快要荒废掉的写博客总结的习惯重新拾回来。fighting~!
全栈程序员站长
2022/11/07
1.2K0
内部类与静态内部类的区别_禁止序列化非静态类的内部类
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
5810
内部类与静态内部类的区别_禁止序列化非静态类的内部类
Java内部类复习笔记
什么是Java内部类? 在类内部可定义成员变量和方法,且在类内部也可以定义另一个类。如果在类 Outer 的内部再定义一个类 Inner,此时类 Inner 就称为内部类(或称为嵌套类),而类 Out
框架师
2021/03/05
6320
Java基础8:深入理解内部类
https://h2pl.github.io/2018/04/25/javase8
程序员黄小斜
2019/04/06
1.6K0
内部类的简单理解
我们知道,在java中类是单继承的,一个类只能继承另一个具体类或抽象类(可以实现多个接口)。这种设计的目的是因为在多继承中,当多个父类中有重复的属性或者方法时,子类的调用结果会含糊不清,因此用了单继承。
zhangjiqun
2024/12/16
750
java静态变量加载顺序_内部类为什么不能有静态
我们声明一个类,这个类有个内部静态类。还有主函数,当我们启动程序之后,运行java application程序。
全栈程序员站长
2022/11/07
4310
java静态变量加载顺序_内部类为什么不能有静态
这一篇让你彻底搞懂 JAVA内部类
做 Android 的话有时候会将各种 Adapter 直接写在 Activity 中,如:
程序员Leo
2023/08/02
2500
【JavaSE专栏65】内部类的使用,定义在其他类内部的类
InnerClass 可以直接访问外部类 OuterClass 的成员变量 outerVariable,并且 OuterClass 可以通过创建 InnerClass 的实例来调用 innerMethod() 方法。
Designer 小郑
2023/08/09
4400
【JavaSE专栏65】内部类的使用,定义在其他类内部的类
内部类总结
静态内部类是定义在另一个类里面用 static 修饰 class 的类,静态内部类不需要依赖于外部类(与类的静态成员属性类似)且无法使用其外部类的非 static 属性或方法(因为在没有外部类对象的情况下可以直接创建静态内部类的对象,如果允许访问外部类的非 static 属性或者方法就会产生矛盾)。
leobhao
2022/06/28
3290
java-内部类
内部类 内部类既可以访问自身的数据域,也可以访问创建它的外部类对象的数据域 内部类对象总有一个隐式引用,它指向了创建它的外部类的对象 外部类的引用在内部类的构造方法中设置,不必手动设置,编译器会自动在构造方法中生成外部类引用 只有内部类可以是私有的,建议设置为私有的,这样只有外部类的方法才可以构造该对象。 在外部类的作用域中,可以通过OuterClass.InnerClass引用内部类 只有静态内部类可以有静态方法 import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Date;
卢衍飞
2023/02/16
3560
夯实Java基础系列18:深入理解Java内部类及其实现原理
本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看
Java技术江湖
2019/10/08
1.3K0
相关推荐
内部类学习
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验