其实这个非常确定,在一班类的定义中是不能使用static修饰符的,但是之所以提出来,是因为真有一种情况可以将类定义为static类型的,那就是内部类。
如下的定义中,是一个内部类的实现:
- package net.moon.insignificant.staticclass;
- public class StaticClassDemo {
- public static void main(String[] args) {
- StaticClassDemo.InnerClass ic = new StaticClassDemo.InnerClass();
- ic.showMessage("Hello, world");
- }
- static class InnerClass{
- public void showMessage(String msg){
- System.out.println(msg);
- }
- }
- }
这里的外部类StaticClassDemo是一个普通的类,我们可以进一步修改,将StaticClassDemo改为一个抽象类,那么,我们就可以在抽象类中附带一个默认的实现,代码如下:
- package net.moon.insignificant.staticclass;
- public abstract class StaticClassDemo {
- public static void main(String[] args) {
- StaticClassDemo.InnerClass ic = new StaticClassDemo.InnerClass();
- ic.showMessage("Hello, world");
- }
- public abstract void showMessage(String msg);
- static class InnerClass extends StaticClassDemo{
- public void showMessage(String msg){
- System.out.println(msg);
- }
- }
- }
当然,更进一步,我们也可以用这种方式给接口提供默认的实现,代码如下:
- package net.moon.insignificant.staticclass;
- public interface StaticClassDemo {
- public void showMessage(String msg);
- static class InnerClass implements StaticClassDemo{
- public void showMessage(String msg){
- System.out.println(msg);
- }
- public static void main(String args[]){
- StaticClassDemo.InnerClass ic = new StaticClassDemo.InnerClass();
- ic.showMessage("Hello, world");
- }
- }
- }
相关推荐
最后,`static`可以修饰内部类,这种内部类被称为静态内部类,它可以独立于外部类的实例存在,因为它不持有对外部类的引用。这使得静态内部类可以像普通类一样被创建和使用。 综上所述,`static`关键字在Java中具有...
当一个方法被声明为`static`时,我们称其为静态方法,它可以直接通过类名调用,无需创建类的实例。 静态方法的主要特点包括: 1. **存储区**:静态方法存储在方法区,而非堆内存中的对象实例。因此,它们的生命...
- 如果一个类被声明为`public`,那么它可以在任何地方被访问到。 - 在Eclipse等IDE中,一个类文件只能包含一个`public`类,且该类文件的命名必须与其类名一致。 - **应用场景**: - `public`修饰符常用于定义API...
彦舜原创,CSDN首发:希望对你有所帮助,仅此而已。内容工整规范,是作者本人,逐句敲出来,同时也含有个人的一些独见。
在编程世界中,"static" 是一个非常关键的修饰符,它在 Java 语言中扮演着重要的角色。本文将深入探讨 "static" 关键字的含义、用途以及何时选择使用或不使用它。我们将通过分析《要 static 还是不要 static?》这篇...
在C#等静态类型语言中,public、private和static是访问修饰符,用于控制类成员的可见性和作用域。而在JavaScript中,由于其原型继承的特性,我们通常使用函数作用域和闭包来模拟这些行为。 下面我们将基于提供的...
1.static修饰一个属性字段,那么这个属性字段将成为类本身的资源,public修饰为共有的,可以在类的外部通过test.a来访问此属性;在类内部任何地方可以使用.如果被修饰为private私有,那么只能在类内部使用.
static 修饰的成员变量和方法可以在不创建实例对象的情况下被访问。 (三)abstract 修饰符 abstract 修饰符用于控制类和方法的继承关系。abstract 修饰的类不能被实例化,abstract 修饰的方法必须被子类实现。 ...
本文主要给大家介绍了关于c++中static修饰符的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 下面一段是引用自effective c++ 中的一句话: 所谓的static对象,其寿命是从构造出来到...
- **定义**:`public`是访问修饰符的一种,表示该类可以在任何地方被访问。 - **应用场景**: - 当需要让其他类或程序集中的代码能够访问该类时。 - 当类作为公共API的一部分时,通常会使用`public`。 #### ...
经过查阅相关资料和做了相关实验后,我们确认了只要用 static 关键字修饰的成员的初始化方式和只有 static 关键字修饰的成员一样,都必须在类体外初始化,而无论 static 在 const 前面还是后面。 例如: ```cpp ...
- **sealed**:防止类被进一步继承,确保类的完整性和稳定性。这在设计模式中常用于创建不可变的类。 - **static**:定义静态类,意味着该类不能被实例化,所有成员都必须是静态的。静态类常用于工具类或只提供静态...
通过以上分析,我们可以看出`auto`、`register`、`static`和`extern`这些存储类修饰符在C语言中扮演着重要角色,它们不仅控制着变量的生存周期,还决定了变量的可见性和访问范围。合理地使用这些修饰符可以提升代码...
static 方法访问修饰符表示静态方法,可以被类的所有实例共享,不需要创建类的实例就可以访问。 final 方法访问修饰符 final 方法访问修饰符表示防止任何子类重载该方法。 abstract 方法访问修饰符 abstract ...
static 修饰的成员属于类,而不是实例,static 方法可以被类名直接调用。static 字段是类字段,无论该字段所在的类创建了多少实例,该字段只存在一个实例。初始化函数是在装载类时执行的,而不是在创建实例时执行的...
在Java中,`static`修饰的成员属于类本身,而不是类的实例(对象)。这意味着无论创建了多少个对象,`static`修饰的成员只会在内存中存在一份副本。因此,当我们声明一个常量并使用`static`修饰时,如: ```java ...
`static`修饰的是类级别的成员,不依赖于类的实例,可以直接通过类名访问;`readonly`修饰的字段则是在运行时初始化,但一旦初始化后就不能再更改。理解和合理运用这三个关键字,对于编写高效、稳定的C#代码至关重要...
只要这个类被加载,Java 虚拟机就能根据类名在运行时数据区的方法区内定找到它们。因此,static 对象可以在它的任何对象创建之前访问,无需引用任何对象。 静态方法 静态方法可以直接通过类名调用,任何的实例也都...