理解 Java 中的 private static final

在 Java 编程中,privatestatic 和 final 是三个非常重要的关键字。它们各自有独特的功能,但在一起使用时,通常用于定义类级别的常量。本文将详细介绍这三个关键字及其组合用法。

1. private

private 是一种访问修饰符,用于限定变量、方法或类的访问权限。被 private 修饰的成员只能在其所属的类内部访问,外部类无法直接访问这些成员。

public class MyClass {
    private int myPrivateVariable;

    private void myPrivateMethod() {
        // 只能在这个类内部访问
    }
}

2. static

static 关键字用于修饰类的成员(变量或方法),表示该成员属于类本身,而不是类的某个实例。换句话说,static 成员在所有实例之间共享,并且可以在没有类实例的情况下访问。

public class MyClass {
    public static int myStaticVariable;

    public static void myStaticMethod() {
        // 可以在没有实例的情况下调用
    }
}

3. final

final 关键字用于修饰变量、方法和类,表示该成员一旦被赋值或定义后就不能再改变。

final 变量

一旦被赋值后就不能再修改。

public class MyClass {
    public final int myFinalVariable = 10;

    public void myMethod() {
        // myFinalVariable = 20; // 这会导致编译错误
    }
}

final 方法

不能被子类重写。

public class MyClass {
    public final void myFinalMethod() {
        // 不能被子类重写
    }
}

final 类

不能被继承。

public final class MyClass {
    // 不能被继承
}

4. private static final 一起使用

当这三个关键字一起使用时,表示该成员是类级别的常量,并且只能在类内部访问。

public class MyClass {
    private static final int MY_CONSTANT = 10;

    public static void main(String[] args) {
        System.out.println(MY_CONSTANT);
    }
}

解释

  • private:该常量只能在 MyClass 类内部访问。

  • static:该常量属于类本身,而不是某个实例。所有实例共享同一个值,并且可以在没有实例的情况下访问。

  • final:该常量一旦被赋值后就不能再修改。

示例

以下是一个完整的示例,展示了如何使用 private static final 定义一个类级别的常量,并在类内部使用它:

public class MyClass {
    private static final int MAX_USERS = 100;

    public static void main(String[] args) {
        System.out.println("The maximum number of users is: " + MAX_USERS);
    }

    private static void printMaxUsers() {
        System.out.println("The maximum number of users is: " + MAX_USERS);
    }
}

在这个示例中,MAX_USERS 是一个类级别的常量,表示最大用户数。它是 private 的,因此只能在 MyClass 类内部访问。它是 static 的,因此属于类本身,可以在没有实例的情况下访问。它是 final 的,因此一旦被赋值后就不能再修改。

总结

  • private:限制访问权限,只能在类内部访问。

  • static:表示成员属于类本身,而不是某个实例,所有实例共享同一个值。

  • final:表示成员一旦被赋值或定义后就不能再改变。

当这三个关键字一起使用时,通常用于定义类级别的常量。希望这篇文章能帮助你更好地理解这三个关键字及其组合用法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值