8.8 final 关键词

  • final 定义不能被继承的类;不能被覆写的方法,常量
  • 最重要作用,定义全局常量

demo1 final

public class HelloWorld {
    public static final String INFO = "mldn";// 定义全局常量;
    public static void main(String args[]){

        String strA = "www.mldn.cn";
        String strB = "www." + INFO + ".cn";
        System.out.println(strA == strB);// true
    }
}

具体来说:
public 表示该常量对外可见,可以被任何类访问;
static 表示该常量属于类,而不是类的实例,可以直接通过类名访问;
final 表示该常量是不可变的,一旦被初始化就不能再被修改,因此其值在程序运行期间保持不变。
最后,String 表示该常量是一个字符串类型的变量。
通常情况下,Java 中常量的命名规范是使用大写字母和下划线组成的,以便与变量区分开来。

  • 上面demo中的static 含义
    在 Java 中,static 关键字用于修饰类成员,包括变量、方法和代码块等。它表示该成员属于类本身,而不是类的实例,因此可以直接通过类名访问。

1.对于 static 变量,它可以被所有实例共享,只有一个副本存在于内存中,而且通常称之为“类变量”。
2.对于 static 方法,它也不依赖于对象实例,因此不能访问非静态成员变量,通常称之为“类方法”。

需要注意的是,static 成员属于类,而非属于具体的对象实例,因此无需创建对象即可进行访问。
同时,通过类名访问成员可以更加清晰地表达逻辑意义,特别是在需要在多个类之间共享数据或方法时,使用 static 成员可以减少不必要的对象创建和内存开销。

demo2 static

class Person {
    private static int count = 0;  // 定义类变量
    private String name;
    
    public Person(String name) {
        this.name = name;
        count++;  // 修改类变量--不用实例化就可以访问,不用用this.count格式;
    }
    
    public static int getCount() {  // static方法,其中只能访问static属性
        return count;
    }
    
    public void sayHello() {
        System.out.println("Hello, my name is " + name);
    }
}

class HelloWorld {
    public static void main(String[] args) {
        Person p1 = new Person("Alice");
        Person p2 = new Person("Bob");
        System.out.println(Person.getCount());  // 输出:2
        p1.sayHello();  // 输出:Hello, my name is Alice
        p2.sayHello();  // 输出:Hello, my name is Bob
    }
}

posted @   盘思动  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!
点击右上角即可分享
微信分享提示