首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏吴伟祥

    Java中的4种内部类

    Java的四种内部类包括如下: 成员内部类 静态内部类 局部内部类 匿名内部类 1. 成员内部类:作为类的成员,存在于某个类的内部。    成员内部类可以调用外部类的所有成员,但只有在创建了外部类的对象后,才能调用外部的成员。 成员内部类的对象必须通过外部类的对象创建 in.test(); } } Console: 在成员内部类的方法中 调用外部类的静态方法 调用外部类的非静态方法 4 2.静态内部类 静态内部类虽然是外部类的成员,但是在未创建外部类的对象的情况下,可以直接创建静态内部类的对象。静态内部类可以引用外部类的静态成员变量和静态方法,但不能引用外部类的普通成员。 static void main(String[] args) { Outter2 outter = new Outter2(); outter.test(); } } 4.

    39930发布于 2018-08-14
  • 来自专栏全栈程序员必看

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

    今天我们分析内部类和静态内部类的区别,首先我们写一个InnerClassTest类,其中有一个内部类InnerClass和静态内部类StaticInnerClass。 倒数5行,StaticInnerClass的innerMethod()报错,显示d() Q:什么是内部类?有什么作用?静态内部类和非静态内部类的区别? 总结 内部类就是定义在另外一个类里面的类。 它隐藏在外部类中,封装性更强,不允许除外部类外的其他类访问它;但它可直接访问外部类的成员。 静态内部类和非静态内部类的区别有: 静态内部类是指被声明为static的内部类,可不依赖外部类实例化;而非静态内部类需要通过生成外部类来间接生成。 静态内部类只能访问外部类的静态成员变量和静态方法,而非静态内部类由于持有对外部类的引用,可以访问外部类的所用成员 参考: 从一道面试题开始说起 枚举、动态代理的原理 java内部类有什么好处?

    99550编辑于 2022-11-07
  • 来自专栏技术博文

    Java内部类-成员内部类、局部内部类、匿名内部类、静态内部类

    2.局部内部类 局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法或者该作用域。 (4)局部内部类访问外部类的成员属性或者方法时,直接访问; (5)外部类访问局部内部类的成员属性或者方法时,通过先创建对象,再访问,且必须要在作用域。 @Override public void innerFun1() { } } interface Inner { public void innerFun1(); } 4. Outer.Inner inner4 = Outer.getInnerInstance2(); inner4.innerFun(); } static 内部类使得多继承的解决方案变得完整; 2.方便将存在一定逻辑关系的类组织在一起,又可以对外界隐藏; 3.方便编写事件驱动程序; 4.方便编写线程代码。

    2.2K11编辑于 2021-12-17
  • 来自专栏云云众生s

    平台工程4死亡

    译自 Platform Engineering Dies in 4 Weeks,作者 Kaspar Von Grunberg 是平台工程的早期先驱。 在 4使用 MVP 开始 通过使用快速移动的先锋团队构建一个代表性用例,您可以迅速向关键利益相关者证明 IDP 的价值。这还可以建立一个清晰的路线图,以便对平台进行迭代和扩展。 您可以将此 MVP 作为全面的 IDP 的基础,并通过基于真实用户反馈和用例构建它,您可以在几周为您的组织和使用它的人提供价值,而不是几个月或几年。 准备好开始了吗? 通过联系我们的平台架构师了解更多信息,在四周开始构建您的 MVP。

    21610编辑于 2024-03-28
  • 来自专栏挨踢小子部落阁

    部类, 静态内部类, 局部类, 匿名内部类的解析和区别

    而内部类分为成员内部类,局部内部类(Local Classes)和匿名内部类(Anonymous Classes)。 所以内部类的成员变量/方法名可以和外部类的相同。 内部类有什么作用? (让多个内部类分别继承多个其他类,使外部类可以同时获取多个其他类的属性) 4.可以避免修改接口而实现同一个类中两种同名方法的调用。 外部类虽然不能直接访问内部类的成员, 但是可以通过内部类的实例访问内部类的私有成员。 : 指内部类定义在方法体内,只能在该方法或条件的作用域才能使用,退出这写作用域就无法引用。

    2.8K11发布于 2019-09-25
  • 来自专栏逆回十六夜

    Java内部类——静态和非静态内部类、匿名内部类、方法内部类

    ,并没有外部类的引用,也就无法调用外部类自己的方法,同时也就屏蔽了外部类的操作 但是如果在内部类中写上外部类的引用和get方法,就可以在这种定义方式的前提下获得外部类的引用了。 静态内部类被执行了! 静态内部类被执行了! 静态内部类的age为:30 静态内部类的age为:40 静态内部类的age为:40 image.png 发现: 定义的两个内部类的age是同一个age,任意一个改变了则全都改变 静态内部类和非静态内部类是有区别的: 内部类有外部类的this指针,但是静态内部类是没有外部类的this指针的,毕竟两者创建的时间也不用。 这就直接导致了静态内部类无法直接通过this指针访问外部类的变量。

    1.2K30发布于 2019-08-09
  • 来自专栏小鱼儿我的学习笔记

    Java学习笔记 (成员内部类、静态内部类、匿名内部类、方法内部类

    ;如果出现同名属性,优先访问内部类中定义的 4、可以使用外部类.this.成员的方式访问外部类中同名的成员信息 5、外部类访问内部类信息,需要通过内部类实例,无法直接访问 6、内部类编译后.class ;如果出现同名属性,优先访问内部类中定义的 * 4、可以使用外部类.this.成员的方式访问外部类中同名的成员信息 * 5、外部类访问内部类信息,需要通过内部类实例,无法直接访问 外部类中可以通过“ 类名· 成员名" 的方式直接访问内部类中静态成员 定义在外部类方法中的内部类, 也称局部内部类。 方法内部类只在其定义所在的方法的内部可见, 即只在该方法可以 使用。 方法内部类只在其定义所在的方法的内部可见, 即只在该方法可以使用。 方法内部类不能使用访问控制符和static 修饰符, 但可以使用final和abstract 修饰。 public Object getHeart(){ //方法内部类 /** * 1、定义在方法内部,作用范围也在方法 * 2

    94520编辑于 2023-04-25
  • 来自专栏章鱼carl的专栏

    【内部类】四种内部类

    成员内部类 2. 静态成员内部类 3. 局部内部类 4. 匿名内部类部类最吸引人的:每个内部类都能独自继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没影响。也就从侧面实现了除接口外的多重继承。 ,任何地方都能访问; (3) protected,则只能在同一个包下或者继承外部类的情况下访问; (4) 默认,只能在同一个包下访问。 public class InnerClass4 { private String outer1 = "outer1"; private static String outer2 = "outer2 是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法或者该作用域

    99410编辑于 2022-03-31
  • 来自专栏每日分享java架构小知识

    java内部类 java内部类作用

    3.方便编写事件驱动程序   4.方便编写线程代码   个人觉得第一点是最重要的原因之一,内部类的存在使得Java的多继承机制变得更加完善。 四、 分类 ---- Java内部类可分为成员内部类、局部内部类、匿名内部类、静态内部类。 我们知道加载类时,会先初始化静态成员,如果成员内部类有静态成员,那么内部类就会在外部类之前生成,而内部类是为外部类服务的,内部类在外部类之前就生成可能会脱离掌控。 2) 局部内部类 局部内部类的使用和成员内部类的使用基本一致,只是局部内部类定义在外部类的方法中,就像局部变量一样,并不是外部类的成员。 运行结果: outer:lalala 4) 静态内部类 静态内部类,有的书上也称为嵌套类,声明它时需要用static修饰符,静态内部类不同于前三种内部类,静态内部类不会持有外部类当前对象的引用,所以在静态内部类中无法访问外部类的非静态成员

    3.2K20发布于 2020-08-06
  • 来自专栏TeamsSix的网络空间安全专栏

    内网学习笔记 | 4、域信息收集

    . : teamssix.com 以太网适配器 Ethernet0: IPv4 地址 . . . . . . . . . . .. : 192.168.7.110 子网掩码 . . . - 查找目录中的用户 dsquery quota - 查找目录中的配额 dsquery partition - 查找目录中的分区 dsquery * - 用通用的 LDAP 查询查找目录中的任何对象 4、 Comment - [+] D - OS Version - 10.0 [+] DANIEL10 - MSSQL Server Enumerating IP Info [+] (null) - IPv4 Invoke-UserHunter:找到域特定的用户群,接受用户名、用户列表和域组查询,接收一个主机列表或查询可用的主机域名。 BF%A1%E6%81%AF%E6%94%B6%E9%9B%86%E4%BA%8C/ ----

    3.9K20发布于 2021-03-05
  • 来自专栏在水一方

    部类

    很多的源码中大量用到了内部类,对于这部分基础来做个回顾 分类 静态内部类 如:static class InnerClass{} 成员内部类 如:private class InstaceClass {} 局部内部类:定义在方法或表达式内部 匿名内部类 (new Thread(){}).start() 无论什么类型的内部类,都会编译成一个独立的.class文件,外部类和内部类之间用$间隔,其中匿名内部类使用数字进行编号 匿名内部类和静态内部类是比较常用的方式,在jdk中,使用内部类封装某种属性和操作的方式比较常见,内部类中还可以嵌套内部类 例如:ThreadLocalMap中又定义了Entry类 好处 在JDK 源码中,在包内定义可见静态内部类的方式很常见,这样做的好处是: 作用域不会扩散到包外 可以通过" 外部类.内部类"的方式直接访问 内部类可以访问外部列中所有的静态属性和方法

    40420编辑于 2022-06-14
  • 来自专栏ml

    部类

    1 package st; 2 //内部类 3 class RedCowForm 4 { 5 static String formName; 6 RedCow cow; 7 12 public void ShowCowMess() 13 { 14 cow.speak(); 15 } 16 class RedCow //内部类的声明

    79250发布于 2018-03-22
  • 来自专栏Java知其所以然

    部类

    只能让外部类直接访问,不允许同一个包中的其他类直接访问。 2. 内部类可以直接访问外部类的私有属性,内部类被当成其外部类的成员。 但外部类不能访问内部类的内部属性。 内部类的使用场合: 由于内部类提供了更好的封装特性,并且可以很方便的访问外部类的属性。所以,通常内部类在只为所在外部类提供服务的情况下优先使用。 类文件:外部类$内部类 .class) 1) 非静态内部类(外部类里使用非静态内部类和平时使用其他类没什么不同) 非静态内部类必须寄存在一个外部类对象里。 因此,如果有一个非静态内部类对象那么一定存在对应的外部类对象。 非静态内部类对象单独属于外部类的某个对象。 非静态内部类可以使用外部类的成员,但是外部类不能直接访问非静态内部类成员。 外部类属性:外部类名.this.变量名 内部类的访问: 外部类中定义内部类: new InnerClass() 外部类以外的地方使用非静态内部类: Outer.inner varname =

    56640发布于 2019-01-22
  • 来自专栏全栈程序员必看

    java内部类和静态内部类区别_静态内部类对象的创建

    我们可以通过类名直接对静态的玩意儿直接进行引用,但这里的Node静态内部类却是私有的。 为了找到静态内部类和普通内部类的区别,我使用jad工具,自己重写一个类似的Node类,对其进行反编译后发现: 普通内部类版本: private class List$Node { List ,存在一个隐藏的外部类引用字段,在构造内部类时,用于指向外部类的引用。 每次生成一个非静态的内部类实例,都会有这样的操作。 恰巧Node类只是外部类的一个组件,他不需要引用外部类的任何字段,所以,把它声明成静态的能减小不必要的消耗。 所以,在定义一个内部类时,如果该内部类不需要引用外部类的非静态属性/方法,则应该将它声明为静态的。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    1K10编辑于 2022-11-10
  • 来自专栏技术小屋-未分类

    Java——内部类使用总结(基本概念、定义内部类、static定义内部类、方法中定义内部类

    若将内部类拿出,变为两个类,程序改动非常大,内部类的最大好处就是可以直接进行外部类的私有属性访问。 (3)目前可发现,实例化内部类的对象操作都是在外部类的fun()方法里面完成的,其他类是否可以直接操作内部类对象,在其他类中实例化内部类对象,语法如下: 外部类名称.内部类名称 对象名称 = new 外部类 Inner inner = new Inner(); inner.print(); System.out.println(inner.msg); } } (4) 利用static定义的 属性和方法是不受类的控制的,相当于一个局外结构,如果内部类使用了static定义,那么此内部类就相当于变成了外部类,只能访问外部类的static属性。 4、总结 1)不需要考虑怎么用内部类,一般开发用的较少,但是会使用; 2)内部类先看明白它的语法形式。

    80330发布于 2020-09-25
  • 来自专栏学习

    <补充:内部类&匿名内部类

    前言 本篇博客主要讲解Java基础语法中的 一、内部类部类的概念、内部类的分类实例内部类、【注意事项】、静态内部类(相比实例内部类用的更多)、局部内部类(几乎不用)、匿名内部类。 public int d = 4; private int e = 5; //public static int f = 6; 实例内部类所处的位置与外部类成员位置相同,因此也受public、private等访问限定符的约束 3. 实例内部类对象必须在先有外部类对象前提下才能创建 4. 局部内部类只能在所定义的方法体内部使用 2. 不能被public、static等修饰符修饰 3. 编译器也有自己独立的字节码文件, 命名格式:外部类名字$数字内部类名字.class 4. 成员内部类(普通内部类:未被static修饰的成员内部类 和 静态内部类:被static修饰的成员内部类) 2.

    34910编辑于 2024-09-24
  • 来自专栏FREE SOLO

    匿名内部类

    部类:在一个类的内部定义了另外的类,称为内部类。 匿名内部类指的是没有名字的内部类。 为了清楚内部类的主要作用,下面首先来观察如下的程序: ? ?

    62800发布于 2019-04-18
  • 来自专栏用户3030674的专栏

    java内部类

    /* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变量 3 private int x=1; 4 //定义外部类函数 5 public void methodOut(){ 6 System.out.println("外部类"); 7 } 8 //定义内部类 9 class InterClass { 10 //定义内部类的变量 11 private int x=2; 12 //定义内部类的函数 13 public void methodInter void main(String[] args) { 28 //创建外部类对象,并调用外部类方法 29 OutClass out=new OutClass(); 30 (); 33 //调用内部类方法 34 inter.methodInter(); 35 } 36 } 运行结果: 外部类 函数中的x=:3 内部类的x=:2 外部类

    56510发布于 2018-09-14
  • 来自专栏全栈程序员必看

    部类学习

    一、内部类 1.1简介 在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。 广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。 总结一下主要有以下四点:   1.每个内部类都能独立的继承一个接口的实现,所以无论外部类是否已经继承了某个(接口的)实现,对于内部类都没有影响。 3.方便编写事件驱动程序   4.方便编写线程代码 1.3种类 1.成员内部类部类像是外部类的一个成员,并且成员内部类可以访问外部类的所有成员变量和成员方法(包括private成员和静态成员) 当成员内部类拥有和外部类同名的成员变量或者方法时 局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法或者该作用域。 } }; myImplementThird.test(); } 4.静态内部类 静态内部类也是定义在另一个类里面的类,只不过在类的前面多了一个关键字static。

    34920编辑于 2022-07-09
  • 来自专栏CSDN搬移文章

    JavaSE内部类

    修饰的属性的方法(使用static final 可以修饰属性,final修饰的常量在编译时已经确定); 实例化实例内部类:  外部类名.内部类名 变量名 = 外部类对象的引用.new 内部类名();                                           A.B b = new A().new B(); 当外部类与实例内部类某属性或方法相同时,在实例内部类中想使用外部类属性或方法:                                             int a1; static class B{ } } 实例化静态内部类: 外部类名.内部类名 = new  外部类名.内部类名();                                           A.B b = new A.B(); 在静态内部类中,访问外部类非静态成员时,创建一个外部类对象,通过对象引用该成员;                                     访问外部类静态成员时 :局部内部类B只能在方法a中创建和使用。

    28640编辑于 2023-10-16
领券