首页
学习
活动
专区
工具
TVP
发布

Java 内部静态_静态内部类特点

简单的说就是在一个内部又定义了一个,这个就称之为内部类(Inner Class)。...看一个简单的例子: 内部类有以下几个主要的特点: 第一,内部类可以访问其所在的属性(包括所在的私有属性),内部类创建自身对象需要先创建其所在的对象,看一个例子: 第二,可以定义内部接口,且可以定义另外一个内部类实现这个内部接口...看一个例子: static内部类是内部类中一个比较特殊的情况,Java文档中是这样描述static内部类的:一旦内部类使用static修饰,那么此时这个内部类就升级为顶级。...也就是说,除了写在一个内部以外,static内部类具备所有外部类的特性,看一个例子: 通过这个例子我们发现,static内部类不仅可以在内部定义static元素,而且在构建对象的时候也可以一次完成...与static内部类不同,内部接口自动具备静态属性,也就是说,普通是可以直接实现内部接口的,看一个例子: 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

58520

08 内部类(嵌套

内部类只是 Java 编译器的概念,对于Java虚拟机而言,它是不知道内部类这回事的,每个内部类最后都会被编译为一个独立的,生成一个独立的字节码文件。...也就是说,每个内部类其实都可以被替换为一个独立的。当然,这是单纯就技术实现而言。...非静态成员/成员内部类 “非静态成员类型”就是没使用 static 声明的成员类型。只有才能作为非静态成员类型。 3....静态成员类型 语法上,静态内部类除了位置放在其他内部外,它与一个独立的差别不大,可以有静态变量、静态方法、成员方法、成员变量、构造方法等。...❑ 表示链表的 LinkedList 内部有一个私有静态内部类 Node,表示链表中的每个节点。

60610
您找到你想要的搜索结果了吗?
是的
没有找到

【JavaSE专栏65】内部类的使用,定义在其他内部

---- 一、什么是内部类 Java 中的内部类是定义在其他内部内部类可以访问外部类的成员(包括私有成员),并且可以起到隐藏和封装的作用。...内部类可以访问外部类的成员,包括私有成员。 内部类可以隐藏在外部类中,对外部类的其他不可见。 内部类可以实现多重继承,一个可以同时继承多个内部类。...---- 二、内部类和普通有什么区别 Java 中的内部类和普通有以下 6 点区别,请同学们认真学习。 访问权限:内部类可以访问外部类的私有成员,而普通不能直接访问外部类的私有成员。...类型:内部类可以分为成员内部类、静态内部类、方法内部类和匿名内部类。而普通只有一种类型。 隐藏性:内部类可以被隐藏在外部类中,对外部类的其他不可见。...通过将内部类定义在需要使用的地方,可以减少的数量,简化代码结构。 实现多重继承:内部类可以实现多重继承,一个可以同时继承多个内部类。

26320

Java中的嵌套内部类、静态内部

嵌套可以分为两种,静态的和非静态的,即静态嵌套和非静态嵌套。非静态嵌套又叫做内部类(Inner Class)。...内部类与静态嵌套虽然都是嵌套,但在使用上是有一些区别的。 内部类 比如有如下内部类的定义, class OuterClass {     ...    ...静态嵌套   有些人把静态嵌套成为静态内部类,其实静态内部类这个称呼不严谨,因为内部类都是非静态的。...静态嵌套内部类有很大的不同,静态嵌套说到底就是一个静态,只不过是其位置位于某个内部罢了。   假设有如下静态嵌套的定义:  class OuterClass {     ...    ...综上所述,虽然内部类和静态嵌套都属于嵌套,但是二者有本质区别:内部类的实例化对象需要绑定一个外围的实例化对象,而静态嵌套的实例化对象不能也无法绑定外围的实例化对象。

1.5K50

java的内部类和静态内部类(嵌套

尤其是Static 修饰和修饰对象和变量不一样呢? 定义 1. 内部类 可以将一个的定义放在另一个的定义内部,这就是内部类; 嵌套是其封闭的成员。...非静态嵌套内部类)可以访问封闭的其他成员,即使它们被声明为私有的也是如此。静态嵌套无权访问封闭的其他成员。...静态内部类 再一个普通里面,给内部类加上static关键字的修饰; 与方法和变量一样,静态嵌套与其外部类相关联。...两者的区别 内部类只是外部类的成员变量,通俗讲,就是你只能通过先调用外部类才能去拿到这个(但是这是和组合还是有区别的)。 但是静态内部类就像是一个普通一样。可以直接调用,直接去new对象。 4....总结 嵌套内部类和静态内部内部类属于外部类的成员,必须依赖与外部对象来实现,静态内部类,不依赖,可以自己单独实现。 static 的修饰 变量,,方法,代码块。 共性全局性。

1.6K20

静态、静态方法、内部类、匿名内部类、非静态的一些实践

正文 首先介绍静态和非静态内部类。先普及一个常识:一个文件里可以有多个,但public的只能有一个且必须和文件名一样。...但如果这个内部类,是可以这样写的:public static class A 静态内部类 vs 内部类 静态内部类:只是为了降低包的深度,方便的使用,实现高内聚。...静态内部类适用于不依赖于外部类,不用使用外在的非静态属性和方法,只是为了方便管理结构而定义。在创建静态内部类的时候,不需要外部类对象的引用。...API的回调函数以静态函数的形式封装到内部 匿名内部类 那么,匿名内部类有什么好处呢?...内部类和静态内部类的区别 静态 只能在内部类中定义静态 静态内部类不依赖于外部类,即使外部类没有创建对象,静态也可以new对象 静态的方法可以是静态的方法也可以是非静态的方法,静态的方法可以在外层通过静态调用

82850

Java 的嵌套内部类和静态嵌套

class NestedClass {        ...    } } 复制代码  内部类与静态嵌套    嵌套有静态和非静态两种,其中静态的称为静态嵌套(static nested classes...),非静态的称为内部类(Inner Classes)  一个嵌套是包含它的外部类的一个成员,内部类能够访问外部类的其他成员,而静态嵌套没有访问外部类的权限  作为外部类的成员,嵌套能被声明为private...nestedObject = new OuterClass.StaticNestedClass();   至于内部类,因为它有权限访问外部类的成员,所以必须依赖一个外部类的实体对象,内部类自身又依赖于实例对象...,所以内部类自身不能包含任何静态成员变量 (static)。...但是内部类可以包含静态常量 static final 类型的成员。  转载于:https://juejin.im/post/5c56b4c1f265da2daa3129bd

80420

Kotlin中级(9)- - - Kotlin之数据、密封内部类.md

当然说到内部类,就必须提到另一个概念,嵌套,所谓嵌套:即指一个可以嵌套在其他中。...在调用的时候嵌套是需要实例化的。 嵌套不能使用外部类的属性和成员 2.内部类 声明一个内部类使用inner关键字。...在调用的时候嵌套是需要实例化的。 内部类不能使用外部类的属性和成员 匿名内部类 作为一名Android开发者,对匿名内部类都不陌生,因为在开发中,匿名内部类随处可见。...从声明上看,继承的两个单独声明,子类通过(子类:父)继承父,而内部类必须声明在外部类里面,并且用关键字inner标记 从访问上看,继承的父不能直接访问子类,外部类可以通过“外部类().内部类...()”访问内部类,继承的子类能直接访问父公开的成员属性及方法,而内部类值能通过this@外部类的方式访问外部类的属性和方法 从能否覆盖上看,继承的子类能覆盖父用open标记的属性和方法,内部类不能覆盖外部类的属性和方法

1.1K20

【小家java】静态、静态方法、内部类、匿名内部类、非静态的一些实践

1、概述 如题,其实在实际业务开发中用得较少,但偶尔又会碰到,因此本文针对于此做一些说明 2、栗子 首先介绍静态和非静态(普通内部类 先普及一个常识:一个文件里可以有多个,但public...但如果这个内部类,是可以这样写的:public static class A 静态内部类的作用:只是为了降低包的深度,方便的使用,实现高内聚。...静态内部类适用于不依赖于外部类,不用使用外在的非静态属性和方法,只是为了方便管理结构而定义。在创建静态内部类的时候,不需要外部类对象的引用。...API的回调函数以静态函数的形式封装到内部 那么,匿名内部类有什么好处呢?...3、使用场景 内部类和静态内部类的区别 静态 只能在内部类中定义静态 静态内部类不依赖于外部类,即使外部类没有创建对象,静态也可以new对象 静态的方法可以是静态的方法也可以是非静态的方法,静态的方法可以在外层通过静态调用

2.3K30

Java的抽象、接口、内部

; (7)抽象中增加方法可以不影响子类,而接口中增加方法通常影响子类; (8)从jdk1.8开始增加特性允许接口中有非抽象的方法,但需要使用default关键字修饰; 3 内部类基本概念: -当一个的定义放在另外一个内部时...,那么这个就叫做内部类,而内部类所在的叫做外部类。...语法格式: 基本作用: -当一个存在的价值仅仅是为某一个单独服务时,就可以将这个定义为所服务内部类,此时内部类可以直接访问外部.的私有成员而不再需要提供公有的get和set方法。...基本分类: 普通内部类 - 直接将一个的定义放到另外一个体中。 静态内部类 - 使用static关键字修饰的内部类。 ------------ 只有内部类才可以使用static关键字修饰。...局部内部类 - 直接将一个的定义放到方法体的内部。 ------------- 只在方法体内有效。 匿名内部类 - 主要指没有名字的内部类。

9020

模型评估指标之内部方法

算法的理想结果是同一别内的点相似度高,而不同类别之间的点相似度低。聚类属于无监督学习,数据没有标签,为了比较不同聚模型的好坏,我们也需要一些定量的指标来进行评估。...内部方法,内部方法指的是不需要数据的标签,仅仅从聚效果本身出发,而制定的一些指标 本文主要关注内部方法,常用的指标有以下几种 1....w表示聚的中心点,通过计算两两聚中心点的距离来得到最终的数值。和紧密型相反,该指标仅仅考虑不同簇之间的距离,数值越大,聚效果越好。 4....其中avg(C)表示聚簇的紧密程度,公式如下 ? 计算该聚簇内样本点的距离,d表示不同聚簇中心点之间的距离,公式如下 ?...分子为聚簇间样本的最小距离,分母为聚簇内样本的最大距离,间距离越大,内距离越小,DVI指数的值越大,聚性能越好。

3K20

内部类与静态内部类的区别_禁止序列化非静态内部

静态内部类和非静态内部类的区别 主要区别有三点:定义、访问和声明 定义 静态内部类中可以定义变量、方法、常量、成员变量和方法;非静态内部类只能定义常量、成员变量和方法 访问...静态内部类只能访问外部类的静态成员变量和静态方法,并且不能引用外部类的对象(this);非静态内部类可以访问外部类的所有成员和方法 声明 声明静态内部类时,不依赖于外部类对象;声明非静态内部类时,...依赖于外部类对象 # 静态内部类 OutClass.InnerClass innerClass = new OutClass.InnerClass(); # 非静态内部类 OutClass.InnerClass...innerClass = new OutClass().new InnerClass(); 内部类使用技巧 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

47410

Java-抽象内部

abstract修饰符可以用来修饰方法也可以修饰,如果修饰方法,那么该方法就是抽象方法;如果修饰,那么该类就是抽象。 抽象中可以没有抽象方法,但是有抽象方法的一定要声明为抽象。...子类继承抽象,那么就必须要实现抽象没有实现的抽象方法,否则该子类也要声明为抽象。...内部内部类就是在一个内部在定义一个,比如,A中定义一个B,那么B相对A来说就称为内部类,而A相对B来说就是外部类了。...成员内部类 静态内部类 局部内部类 匿名内部类 示例代码: public class Outer { private int id; public void out() {..."这是外部类的方法"); } class Inneri { public void in() { System.out.println("这是内部类的方法

19440

【Android 安全】DEX 加密 ( Proguard keep 用法 | Proguard 默认混淆结果 | 保留及成员混淆结果 | 保留注解以及被注解修饰的成员方法 )

文章目录 一、Proguard 默认混淆结果 二、Proguard 保留及成员混淆结果 三、Proguard 保留注解以及被注解修饰的/成员/方法 更多 ProGuard 混淆配置参考 : https..., 使用的是 默认混淆文件 , 除了 MainActivity , 以及 MainActivity 中的 3 个内部类 , IdleHandler , Handler , Thread , 其余...Java 文件都被混淆 ; 二、Proguard 保留及成员混淆结果 ---- 在 应用 Module 下的 proguard-rules.pro 中进行如下配置 : # 保留 MainActivity...; 保留 MainActivity 名 , 成员变量名称 , 成员方法名称 , # 保留 MainActivity 名,成员变量名称 -keep public class kim.hsl.handler.MainActivity...; public @interface Keep { } ProGuard 中配置 保留该注解 , 以及 被该注解修饰的 ; # 保留 Main 及成员 -keep public class kim.hsl.handler.Main

1.3K00
领券