首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在嵌套类中初始化静态常量成员变量

在嵌套类中初始化静态常量成员变量,需要在嵌套类外部进行初始化。嵌套类是指在一个类中定义的另一个类,静态常量成员变量是指在类中定义的常量成员变量,它们不依赖于类的实例,而是属于类本身。

以下是一个示例代码:

代码语言:java
复制
class OuterClass {
    class NestedClass {
        static final int CONSTANT_VALUE;
    }

    static {
        NestedClass.CONSTANT_VALUE = 10;
    }
}

在上面的代码中,我们在嵌套类 NestedClass 中定义了一个静态常量成员变量 CONSTANT_VALUE,并在嵌套类外部的静态代码块中对其进行了初始化。

需要注意的是,静态常量成员变量必须在定义时初始化,或者在静态代码块中进行初始化,否则会导致编译错误。此外,静态常量成员变量的值不能被修改,因此在初始化后就不能再次更改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【C++】静态成员变量 ( 静态成员变量概念 | 静态成员变量声明 | 静态成员变量初始化 | 静态成员变量访问 | 静态成员变量生命周期 )

一、静态成员变量概念 1、静态成员变量引入 C++ , 静态成员变量 又称为 静态属性 ; 静态成员归属 : 静态成员变量 是特殊的成员变量 , 是 所有的 成员 , 而不是对象所有的成员...static int number; }; 3、静态成员变量初始化 静态成员变量 初始化 : 静态成员变量 使用时 , 的外部 进行 初始化 ; Student 静态成员 成员变量...: 只对 内部已定义的 静态成员变量 进行单纯的赋值 ; // 函数 静态成员变量 赋值 Student::number = 2; 4、静态成员变量访问 静态成员变量访问 : 使用域操作符访问..., 程序生命周期 之内 , 的多个对象的 静态成员的值 是相同的 ; 二、完整代码示例 下面的代码 : 定义了 Student , 其中定义了 静态成员变量 number ; // 内部定义静态成员...:number = 1; 单独进行 静态成员变量 初始化 , 代码为 Student::number = 2 ; // 函数 静态成员变量 赋值 Student::number = 2;

33320

Java初始化过程:(静态成员变量静态代码块,普通成员变量,代码块初始化顺序)

初始化过程是这样的: 1.首先,初始化静态成员变量静态代码块,按照在程序中出现的顺序初始化; 2.然后,初始化子类静态成员变量静态代码块,按照在程序中出现的顺序初始化; 3.其次,...初始化的普通成员变量和代码块,执行父的构造方法; 4.最后,初始化子类的普通成员变量和代码块,执行子类的构造方法; 的加载顺序: 父静态成员变量静态块>子类静态成员变量静态块>...父普通成员变量、非静态块>父构造函数>子类 普通成员变量、非静态块>子类构造函数 静态代码块:随着的加载而执行,而且只执行一次 非静态代码块:每创建一个对象,就执行一次非静态代码块 关于各个成员简介

30030

C++:09---静态成员常量成员

一、静态成员(static) 先介绍一下什么是静态变量静态函数 静态局部变量:存在域(全局数据区),作用域(块作用域) 静态全局变量:存在域(全局数据区),作用域(整个文件) 静态函数:存在域(全局数据区...静态数据成员 静态成员不属于某一个对象,而是属于整个(定义在数据段) 静态成员供所有对象共享,每个对象可以调用且修改。一个对象修改,其他对象也跟着变化 static成员变量可以类型声明并初始化。...静态函数 因为静态函数不属于某一对象,所以函数内不存在this指针 静态成员函数不能被声明为const类型(“静态成员函数是属于的,而不是某个具体对象,没有具体对象的时候静态成员就已经存在,静态成员函数不会访问到非静态成员...原因:静态函数定义时就已经开辟内存空间,而普通成员只有当定义对象时开会开辟内存空间,所以调用普通成员会出错 普通函数内部可以调用静态成员,也可以调用普通成员。...height=178;//错误,不可调用普通成员 } 二、常量成员(const) const数据成员 特点: const数据成员只能在构造函数的初始化列表进行初始化 const数据成员初始化之后

1.5K40

C++_const 常量成员以及成员初始化列表及其常量

常量成员以及成员初始化列表 1.知识点介绍 常量成员,指的是C++声明对象成员时可以加上const关键字,这样声明的成员常量成员常量成员分为常量数据成员常量函数成员 2.常量数据成员...3.成员初始化列表 常量数据成员构造函数范围内, 但是常量数据成员值无法改变....} 初始化列表的特性 1、初始化列表也是实现成员数据的初始化的一种方式 2、一些特殊情况下,数据成员初始化只能用初始化列表的方式给数据成员赋值,而不能在构造函数 直接赋值 3、初始化列表必须写在构造函数的定义体后面...4、构造函数能对数据的初始化工作,初始化列表也可以,但是初始化列表能做的,构造函数不一定能 5、初始化列表的初始化顺序是按照他们中出现的顺序来初始化的,而不是初始化列表写的顺序 来初始化的 4...id = 15; // 报错 } void fun1() const; // 内声明 }; void CA::fun1() const // 外实现 { } 特点: 常量函数成员, 在这个函数不能对自身变量进行修改

92530

Java静态变量(变量)、实例变量、局部变量成员变量

//成员变量静态变量(变量) public static String level = "SSS"; //成员变量静态变量(变量) public int getAge...成员变量:作用范围是整个,相当于C的全局变量,定义方法体和语句块之外,一般定义的声明之下;成员变量包括实例变量静态变量(变量); 实例变量:独立于与方法之外的变量,无static修饰,...声明一个,但在方法、构造方法和语句块之外,数值型变量默认值为0,布尔型默认值为false,引用类型默认值为null; 静态变量(变量):独立于方法之外的变量,用static修饰,默认值与实例变量相似...,一个只有一份,属于对象共有,存储静态存储区,经常被声明为常量,调用一般是名.静态变量名,也可以用对象名.静态变量名调用; 局部变量的方法变量,访问修饰符不能用于局部变量,声明方法、构造方法或语句块...,栈上分配,无默认值,必须经初始化

2.1K20

C++_静态成员

静态成员 1.回顾 C语言中曾经学习过静态变量, 其定义为经过static修饰过的变量, 其有着与整个源程序相同的生命周期, 其作用域与自动变量相同, 又分为静态全局变量静态局部变量. 2.知识点介绍...静态成员,指的是C++声明成员时,可以加上static关键字,这样声明的成员静态成员静态成员分为静态数据成员静态函数成员两种 3.静态数据成员定义 class Node { public...: static int id; //静态数据成员定义 }; int Node::id = 10; //静态数据成员初始化 4.静态数据成员的特点 静态数据成员, 所有对象共享该数据, 只存在一份内存...static void fun1(); // 声明 }; void CB::fun1() {} // 外定义 6.静态函数成员特点 静态函数成员也不属于对象, 属于...., 不能访问的普通成员, 静态函数成员, 在有没有对象的情况下都可以用, 可以静态的函数中使用局部变量 #include using namespace std; class CB

52910

JVM运行时的数据区,静态变量,成员变量,变量

,对象引用(reference类型,它不等同于对象本身,是对象堆内存的首地址)。...堆:存放对象实例和数组 方法区用于存储已被虚拟机加载的信息、常量静态变量、即时编译器编译后的代码和编译加载的数据等。运行时常量池是方法区的一部分,用于存放编译器生成的各种字面量和符号引用。...局部变量成员变量的区别 ①声明的位置 局部变量:方法体们,形参,代码块们 成员变量中方法外 - 变量:有static修饰 - 实例变量:没有static修饰 ②可用的修饰符 局部变量...④作用域 局部变量:从声明处开始,到所属的]结束口实例变量:在当前“this.”(有时this.可以缺省),在其他“对象名.”访问 变量:在当前名.”...或“对象名.”访问 ⑤生命周期 局部变量:每一个线程,每一次调用执行都是新的生命周期口 实例变量:随着对象的创建而初始化,随着对象的被回收而消亡,每一个对象的实例变量是独立的 变量:随着初始化初始化

1K20

【小家java】静态代码块、构造代码块、静态变量成员变量执行顺序和继承逻辑

如果超没有不带参数的构造器,并且子类的构造器又没有显式地调用超的其他构造器,则 java 编译器将报告错误 情况四:子类和父有同名同类型的静态常量的时候 public class Main...最后,附上两张图,大家可以明显发发现一些端倪,希望对大家能有记忆作用哈: 图一:构造代码块是初始化对象属性(成员变量)之前执行的 ?...我觉得脑子里应该浮现出一个这样的知识点: Java赋值顺序: 1、父静态变量赋值 2、自身的静态变量赋值 3、父成员变量赋值和父块赋值 4、父构造函数赋值 5、自身成员变量赋值和自身块赋值...只有准备阶段和初始化阶段才会涉及变量初始化和赋值,因此只针对这两个阶段进行分析; 的准备阶段:需要做是为变量(static变量)分配内存并设置默认值(注意此处都是先给默认值),因此类变量st...构造器:编译器收集所有静态语句块和变量的赋值语句,按语句源码的顺序合并生成构造器 因此现在执行:st = new StaticTest().此时我们发现,就会进行对象的初始化了(看到没,这个时候

1.4K20

【C++】与对象—— 初始化列表 、static 静态成员

注意: 每个成员变量初始化列表只能出现一次(初始化只能一次) 包括以下成员,必须在初始化列表进行初始化 : 引用成员变量 const成员变量 自定义类型成员(并且该类没有默认构造函数时)...尽量使用初始化列表初始化,因为不管你是否使用初始化列表,对于自定义类型成员变量,一定会先使用初始化列表初始化 成员变量声明次序就是其初始化列表初始化顺序,与其初始化列表的先后次序无关。...静态成员变量一定要在外进行初始化 2.2 声明成员变量 我们通过成员的声明之前加入关键字 static 就可以创建,和其他成员一样,静态成员也是可以被 public 或 private的。...静态成员变量的类型可以是常量,引用,指针,类型等。 并且,静态成员函数也不与任何对象绑定在一起,他们不包含this指针。...总结 静态成员为所有对象所共享,不属于某个具体的对象,存放在静态静态成员变量必须在外定义,定义时不添加static关键字,只是声明 静态成员即可用 名 :: 静态成员 或者 对象.静态成员

23510

const修饰成员变量及函数

const,可以修饰成员变量成员函数,主要目的也是保护成员内部的一些属性不被轻易的修改。以保证数据的完整性。下面分别介绍const修饰成员变量成员函数。...const修饰成员变量表示成员常量,只能在初始化列表赋值,可以被const和非const成员函数调用,但不能修改其值。...#pragma once class CConst { public: // 初始化列表初始化const成员函数 CConst(void):iValue(200) { // error // iValue...= 300; } ~CConst(void); private: // const 成员变量 const int iValue; }; const修饰成员函数目的是不让函数修改内部的数据成员,而且不会调用其他非...const成员函数(如果调用则编译出错) #include using namespace std; class CConst { public: // 初始化列表初始化const成员函数

20020

为什么Java成员变量不能被重写?成员变量Java能够被重写么?不会重写成员变量,而是隐藏成员变量访问隐藏域的方法

这篇文章讨论了Java面向对象概念中一个基本的概念--Field Hiding(成员变量隐藏) 成员变量Java能够被重写么?...不会重写成员变量,而是隐藏成员变量 Java文档对隐藏域的定义: Within a class, a field that has the same name as a field in the superclass...意思就是: 一个,子类成员变量如果和父成员变量同名,那么即使他们类型不一样,只要名字一样。父成员变量都会被隐藏。子类,父成员变量不能被简单的用引用来访问。...而是,必须从父的引用获得父被隐藏的成员变量,一般来说,我们不推荐隐藏成员变量,因为这样会使代码变得难以阅读。...其实,简单来说,就是子类不会去重写覆盖父成员变量,所以成员变量的访问不能像方法一样使用多态去访问。

3.5K40

关于静态常量类型 修饰 方法变量的部分理解

分两个部分进行记录 目录 静态(static) 修饰/方法/变量 静态(static) 修饰 静态(static) 修饰方法/变量 常量(final) 修饰/方法/变量 常量(final) 修饰...常量(final) 修饰方法/变量 静态(static) 修饰/方法/变量 静态(static) 修饰 Java里面static一般用来修饰成员变量或函数。...静态(static) 修饰方法/变量 静态属性、静态方法和非静态的属性都可以被继承和隐藏而不能被重写{这里之所以不能被重写,是因为重写的目的与多态的使用,因为是静态的方法,无法实现多态,所以就算重写也是无用的...常量(final) 修饰/方法/变量 常量(final) 修饰 final 修饰的不能被继承。 常量(final) 修饰方法/变量 1.final修饰的成员成员变量,可以被继承。...final 修饰的成员变量必须在声明的同时赋值,如果在声明的时候没有赋值,那么只有 一次赋值的机会,而且只能在构造方法显式赋值,然后才能使用。

86020

PHP 范围解析操作符(::)用法分析【访问静态成员常量

分享给大家供大家参考,具体如下: 范围解析操作符 (::) 范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,可以用于访问静态成员常量,还可以用于覆盖的属性和方法...当在定义之外引用到这些项目时,要使用名。 自 PHP 5.3.0 起,可以通过变量来引用,该变量的值不能是关键字(如 self,parent 和 static)。...然而,这是 Zend 开发小组写 Zend Engine 0.5(被用于 PHP 3 )时所作出的决定。事实上这个词希伯莱文就是双冒号的意思。...的外部使用 :: self,parent 和 static 这三个特殊的关键字是用于定义的内部对其属性或方法进行访问的。 <?...:: 当一个子类覆盖其父的方法时,PHP 不会调用父已被覆盖的方法。

78710

【C++】继承 ⑩ ( 继承机制的 static 静态成员 | 子类访问父静态成员的方法 )

一、继承机制中派生的 static 关键字 1、子类继承父静态成员 子类继承父静态成员 : 父 ( 基 ) 使用 static 关键字 定义的 静态成员变量 , 可以被所有的 子类 (...派生 ) 共享 ; 2、父静态成员访问控制权限的改变 继承自 父静态成员变量 , 仍然遵循 继承 子类的 访问控制特性 , public 公有继承 : 父成员 子类 , 访问控制权限...静态成员变量初始化 | 静态成员变量访问 | 静态成员变量生命周期 ) 博客 , 静态成员需要 先在定义静态变量 , class Parent { public: // 父静态成员 static...int c; }; 然后在外部声明 并进行初始化 , 该步骤的作用是 告诉编译器 , 为 静态变量 分配内存 , 否则不分配内存 编译会报错 ; // 声明并初始化静态变量 // 如果没有该操作 ,...静态成员不可用 int Parent::c = 10; 之后 , 才能使用 静态成员 , 如果没有外部初始化 , 该静态成员是无法使用的 ; 二、完整代码示例 ---- 代码示例 : #include

32110
领券