java中非静态内部类中不可声明静态成员

Java内部类中的静态成员内部类 一般情况,我们把类定义成独立的单元。有些情况下,我们把一个类放在另一个类的内部定义,称为内部类。Java中的内部类是在Jdk1.1版本之后增加的,内部类是Java语言中一个比较重要的概念,可以增强Java程序的灵活性。 内部类的作用: 1、内部类提供了更好的封装。只能让外部类直接访问,不允许同一个包中的其他类直接访问。 2、内部类可以直接访问外部类的私有属性,内部类被当成其外部类的成员。但外部类不... 阅读详情
package com.aaa;

/**
 * @filename Test0128.java
 * @author l
 * @version 创建时间:2019年1月28日 下午4:47:58
 * @description
 */
public class Test0128 {

	class Apple {
		private static long a;
		private final long b = a++;
		public long geta(){ return b;}
	}
	
	public static void main(String[] args) {
		
	}

}

报错,提示:The field a cannot be declared static in a non-static inner type, unless initialized with a constant

java规定:非静态内部类中不可声明静态成员。

原因:

每一个非静态内部类必须维持对一个外部类实例的应用,表明其作用域为实例级别;

static指定的属性、方法等为类级别;

二者作用域不同,自然编译无法通过。可在变量前添加final,使其变为全局变量。

【安全启动】HSM安全启动原理与技术实现白皮书 摘要: 安全启动(Secure Boot)与度量启动(Measured Boot)通过硬件信任根(HSM/TPM等)确保系统启动链路的可信性,实现代码验证与状态记录。HSM作为核心组件,承担密钥保护、签名验证和密码运算任务,与SHE、TPM等协同构建分层信任链。通用计算与嵌入式/汽车场景的启动流程差异显著,前者依赖TPM的PCR度量,后者以HSM为核心实现硬件级安全闭环。工程实践中需权衡性能、合规性及抗攻击能力,并结合后量子密码(PQC)等演进技术优化方案。 阅读详情

相关推荐

记录一次PowerJob使用达梦数据库的配置

记录一次PowerJob使用达梦数据库的配置

早晨阳光一般暖的博客 2159

14.内部类

成员内部类 概述:一个类的内部又包含了一个完整的类 特点: 1.外部类和内部类都可以生成独立字节码文件 2.内部类可直接使用外部类的私有成员属性,而不破坏封装性 3.外部类的具体实现可以交给内部类来完成 1 实例内部类 实例内部类用法: 1.使用特点 2.调用方式 class Outter{ //外部类 private String name="凤姐"; public int add(int a,int b) { ...

小白的记录 192

DISM错误87详解:RestoreHealth选项无法识别的修复方法

DISM(部署映像服务和管理工具)是Windows系统维护与修复的核心命令行工具,常与SFC(系统文件检查器)配合使用,用于扫描和修复组件存储损坏、系统文件缺失等问题。在执行系统健康检查时,用户常会遭遇错误87,提示“未在此上下文中识别出restorehealth选项”。该错误的本质并非工具损坏,而是命令参数结构不符合DISM的语法解析规则,或当前系统环境(如Windows 7、WinRE/PE、32位环境)不支持该参数。理解DISM的命令层级、参数挂载关系以及运行上下文,是精准排除故障的前提。通过核对标准

weixin_34116482的博客 472

《为什么非静态内部类中不能有static属性的变量,却可以有static final属性的变量?》

每当我们翻阅有关Java的入门书籍,进入关于内部类的章节时,我们经常可以看到某某书上写道: ——非静态实名内部类(成员内部类)中不能含有static修饰的变量,但是可以含有static final修饰的变量。 这,你如果当它是一条“法则”,大可不必去详细追究它,我们承认了,知道了就是了。但是,如果你仔细想想,为什么非静态实名内部类(成员内部类)中就不能含有sta

WuchangI的博客 3738

DDR内存条选购避坑指南:单Rank vs 双Rank性能实测对比(附2024年颗粒推荐)

本文深入解析了内存条中单Rank与双Rank设计的原理与性能差异。通过实战测试对比,揭示了双Rank内存在高负载场景(如3D渲染、视频剪辑)中凭借Rank Interleaving技术带来的显著性能优势,并提供了2024年针对不同用户需求的DDR4/DDR5内存选购策略与避坑指南。

ik678901的博客 1124

奈曼-皮尔逊准则

奈曼-皮尔逊准则 如果各个假设的先验概率P(Hi)(i=0,1)P(H_i)(i=0,1)P(Hi​)(i=0,1)已知,并且每种判决的代价函数已知,这时,可以用贝叶斯准则进行判决。 如果进一步假设正确判决不付出的代价,而错误判决代价相同,即c00=c11=0,c01=c10=1c_{00}=c_{11}=0,c_{01}=c_{10}=1c00​=c11​=0,c01​=c10​=1,这时可以用最小平均错误概率准则进行判决。 在不知道先验概率P(Hi)(i=0,1)P(H_i)(i=0,1)P(Hi​)(

little_soldier的专栏 1万+

内部类及base调用子类方法

1.静态内部类不能访问外部类的普通成员变量,只能访问外部类的静态成员和静态方法(包括私有类型),可以在静态内部类中定义静态或非静态的方法和属性 ,若是有静态代码块外部类的静态代码块会执行,但静态内部类的静态代码块不会执行,非静态内部类不能定义静态代码块package niuke;public class static1 { static { System.out.printl

fangchao3652 1031

CentOS校园网Web Portal认证自动化实战

Web Portal认证是一种基于HTTP重定向与表单提交的强制网络准入机制,其原理是网关劫持未认证流量并跳转至登录页,验证通过后通过Cookie维持会话授权。该技术广泛应用于高校、机场、酒店等场景,核心价值在于细粒度访问控制与用户身份绑定。典型应用包括Linux命令行环境下的校园网接入、无GUI设备的自动联网、以及实验室集群的集中认证管理。本文聚焦CentOS系统,深入解析curl、cookie持久化、动态表单参数提取等关键技术环节,提供可调试、可复现、可工程化的完整认证流水线。

weixin_30522983的博客 265

非静态内部类不能定义静态成员变量和静态方法

非静态内部类不能定义静态成员变量和静态方法

wusb5的博客 801

【小白深度教程 1.8】手把手教你使用 Depth Anything V2 估计单目深度,并映射到 3D 点云(含 Python 代码)

我们尝试使用单目深度估计技术(Depth Anything V2),来进行准确的双目深度估计,并将场景转换成 3D 点云,Python 代码在最后。

2401_87064292的博客 5090

操作系统 | 知识梳理 | 复习(上)

操作系统复习

知识库搭建ing 3475

【码歌】为什么非静态内部类中不能有static成员变量,却可以有static final 属性的编译期常量?

为了尽可能阐述清楚这个问题,我会从以下几个方向说明这个问题: 1、 测试用例 * 测试非静态内部类如何理解? * 测试非静态内部类定义静态成员是否合法? * 测试非静态内部类是否可以定义静态常量? a、定义字面常量 b、定义动态常量 2、 测试结果 3、 探究缘由 测试方案: 测试非静态内部类如何理解? 代码用例: 结论:我们理解非静态内部类时,可以看作是一个外部类的一个非静态成...

码歌大大 358

Spring AI Alibaba 项目源码学习(九)-其他继承BaseAgent

本文分析了Spring AI Alibaba Agent Framework中的A2aRemoteAgent实现,主要特点包括: 实现了Agent间的远程调用能力,支持分布式部署 核心组件包括AgentCard封装元数据、A2aNodeActionWithConfig处理调用逻辑、AgentCardProvider提供卡片管理 支持流式调用和状态共享机制 采用Builder模式构建Agent实例 通过指令传递实现Agent间通信 关键流程包括状态提取、请求构建、远程调用和状态更新四个步骤,形成Agent

819

不应该通过类实例访问静态成员_Java内部类

内部类的初步介绍1.1 内部类的定义当我们将一个类A放置于另一个类B的内部定义时,那么我们称A为内部类(或嵌套类),称B为外部类(或宿主类)。1.2 内部类的主要作用内部类提供了更好的封装效果,可以将内部类隐藏在外部类之内,在内部类中完成封装效果;内部类成员可以直接访问外部类的私有数据,可以作为外部类的成员,一个类中的成员可以相互访问;匿名内部类可以用于创建仅需要使用一次的类;1.3 内部类与外部...

weixin_39882623的博客 3216

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

java 内部类和静态内部类的区别

占坑中。。 参考: 从一道面试题开始说起 枚举、动态代理的原理

王智博 7929

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

为何非静态内部类不能有静态成员

首先要弄清楚非静态内部类的概念。         非静态内部类如下: public class Outer { class Inner { //public static int si = 1;错误,不允许存在静态的内部成员 public static final int i = 1; } public static void main(String[] ar

xxzj9067的博客 823

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java基础:Java 内部类和静态内部类的区别

内部类(Inner Class)和静态内部类(Static Nested Class)的区别: 定义在一个类内部的类叫内部类,包含内部类的类称为外部类。内部类可以声明public、protected、private等访问限制,可以声明 为abstract的供其他内部类或外部类继承与扩展,或者声明为static、final的,也可以实现特定的接口。 外部类按常规的类访问方式使用内部 类,唯一的差别是...

TuT 1万+

Java内部类不能有静态声明的思考与解决

java练习出现的错误 Test.java:30: 内部类不能有静态声明 public static void main(String args[]){ 这是在cmd命令行窗口执行javac Test.java报出的错误信息 它提示的已经很明确了,内部内不能有静态声明 简单百度了一下内部内的概念,通俗的解释就是 内部类: 所谓内部类就是在一个类内部进行其他类结构的嵌套操作。 那么在一个类的内部进行嵌套类就是所谓的内部类,根据出错提示内部类不能有静态声明,我们就能想到static应该去掉,但...

崔凯洋的博客 8671

Java中非静态成员变量、静态成员变量的初始化时机

转: Java中非静态成员变量、静态成员变量的初始化时机。 2018年05月22日 11:48:11 SilenceCarrot 阅读数 421 版权声明:技术就要分享才有意思,欢迎大家分享(注明出处),欢迎大家纠错。 https://blog.youkuaiyun.com/SilenceCarrot/article/details/80403635 Java中非静态成...

weixin_30873847的博客 276

Java 内部类不可以有静态成员

写这篇文章的原因是自己在Android写适配器的过程中没有新建class,而是采用内部类的写法报错,代码大致抽象成:问询他人的结果:iii类实例化时,innerClass还没被实例化,所以报错,类似于静态方法中不能引用非静态的方法和变量。最开始并没有深入了解,随着我学习的不断深入,可以一言以释之:静态是优先于对象存在的,随着类的消失而消失,可以被类之间调用,被所有对象共用。也就是说静态优先被创建,这时非静态可能还没有被创建,所以静态不可以访问非静态。...

m0_61677406的博客 1135

JAVA 内部静态类--解析静态内部类的使用目的与限制

public class PrefixTrie { // supports 7-bit chars. private static final int SIZE = 128; Node root = new Node(); public void put(String prefix, Object value) { No

Vange的专栏 4万+

Java静态内部类的作用

在一个类中创建另外一个类,叫做成员内部类。这个成员内部类可以静态的(利用static关键字修饰),也可以是非静态的。由于静态的内部类在定义、使用的时候会有种种的限制。所以在实际工作中用到的并不多。    在开发过程中,内部类中使用的最多的还是非静态地成员内部类。不过在特定的情况下,静态内部类也能够发挥其独特的作用。    一、静态内部类的使用目的。    在定义内部类的时候,可以在其前面加上一个权...

3295

4.6 Java中内部类全解(静态内部类、匿名内部类)

在Java中,匿名内部类是没有名字的内部类,通常用于创建需要单次使用的类,或者在需要时快速实现某个接口或抽象类的方法。匿名内部类在定义时是匿名的,并且大多数情况下是直接在方法中定义和使用的。静态内部类在设计模式中很有用,特别是当内部类不需要访问外部类的实例成员时。成员内部类是定义在另一个类的内部的类,它可以访问外部类的所有成员,包括私有成员。在Java中,成员内部类(也称为非静态内部类)是定义在另一个类中的类。在Java中,静态内部类是定义在另一个类中的类,并且被声明为静态(

Argonaut_的博客 953

Java学习笔记10——静态内部类使用及意义

当我们创建一个静态内部类的对象时,并不需要先创建外部类的对象,与类中的静态成员的约定一样,在静态内部类中也不能访问外部类中的非静态成员,可以访问静态成员。(2)由于静态内部类具有这种独立性,所以可以实现一些有意思的功能,比如让接口中的静态内部类实现该接口,相当于接口自带了一个实现,任何需要该接口的地方都可以直接使用接口中的静态内部类的实现。(4)静态内部类与普通的内部类还有一个重要区别:普通的内部类中的成员不能声明为static,因此也就不能再有嵌套的静态内部类;

近日终于有时间好好回顾下一些作品了,有帮助的好好看就行 1096

【Java语法】java中成员内部类内为什么不允许有任何静态声明搜索

看下内部类Eclipse给的错误我们可以看出一部分,静态的属性或者方法不允许声明在非静态的对象中.      下面我们看下think in java 中谈内部类   内部类自动获得对其外围类所有成员的访问权,这是如何做到的? 当某个外围类创建了一个内部类对象时,此内部类对象必定秘密捕获一个指向那个外围类对象的引用.然后,在你访问此外围类的成员时.就是用那个引用来选择

qq_16930023的博客 1404

Java静态内部类与非静态内部类的区别

Java静态内部类与非静态内部类的区别 1 static 静态修饰符 在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的。 static修饰表示静态的,在类加载时JVM会把它放到方法区,被本类以及本类中所有实例所公用。在编译后所分配的内存会在一直存在,直到程序退出内存才会释放这个空间。如果一个被所有实例公用的方法被申明为static,那么就可以节省空间了,不用每个实例初始化的时候都被分配到内存。 2.内部类 定义在一个类内部的类叫内部类,包含内部类的类称为外部类。内部类可以声明public、pr

DDDDeng_的博客 620
上一篇: Solr与Elasticsearch谁是开源搜索引擎王者
下一篇: java中static与final
hellorichen
博客等级 码龄13年 199粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值