前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关键字static修饰属性、方法

关键字static修饰属性、方法

原创
作者头像
玖叁叁
发布2023-05-11 11:26:09
2040
发布2023-05-11 11:26:09
举报
文章被收录于专栏:玖叁叁玖叁叁

在Java中,关键字static可以修饰属性和方法,它表示这些属性和方法属于类而不是属于类的实例。也就是说,无论创建多少个对象,这些静态属性和方法的值和行为都是相同的。

static修饰属性

当我们将一个属性声明为静态时,它就不再是属于对象的属性,而是属于类的属性。这意味着所有对象都可以共享这个属性的值,而且可以在不创建对象的情况下直接使用该属性。静态属性在类被加载时会被初始化,而不是在创建对象时被初始化。下面是一个示例:

代码语言:javascript
复制
public class Car {
    private String name;
    private static int count;
    
    public Car(String name) {
        this.name = name;
        count++;
    }
    
    public static int getCount() {
        return count;
    }
}

// 使用
Car car1 = new Car("Audi");
Car car2 = new Car("BMW");
System.out.println(Car.getCount()); // 输出2

在上面的示例中,我们声明了一个名为count的静态属性,它用于统计创建的Car对象的数量。在构造方法中,我们每次创建一个新的对象时,都会将count加1。由于count是静态属性,因此所有对象都可以共享这个属性的值。在最后的使用示例中,我们直接使用类名调用了静态方法getCount(),来获取创建的Car对象的数量。

static修饰方法

当我们将一个方法声明为静态时,它就不再是属于对象的方法,而是属于类的方法。这意味着我们可以在不创建对象的情况下直接使用该方法。静态方法在类被加载时就已经存在,可以直接使用。下面是一个示例:

代码语言:javascript
复制
public class MathUtils {
    public static int add(int a, int b) {
        return a + b;
    }
}

// 使用
System.out.println(MathUtils.add(1, 2)); // 输出3

在上面的示例中,我们声明了一个名为add的静态方法,它用于计算两个整数的和。由于add是静态方法,因此我们可以在不创建MathUtils对象的情况下直接使用它。在最后的使用示例中,我们直接使用类名调用了静态方法add(),来计算1和2的和。

静态代码块

除了可以将属性和方法声明为静态的,我们还可以在类中使用静态代码块。静态代码块在类被加载时会被执行,可以用于初始化静态属性或执行其他需要在类加载时完成的操作。下面是一个示例:

代码语言:javascript
复制
public class Config {
    public static final String NAME;
    public static final int VERSION;
    
    static {
        Properties prop = new Properties();
        try {
            prop.load(new FileInputStream("config.properties"));
        } catch (IOException e) {
            e.printStackTrace();
        }
        NAME = prop.getProperty("name");
        VERSION = Integer.parseInt(prop.getProperty("version"));
    }
}

// 使用
System.out.println(Config.NAME); // 输出"My Application"
System.out.println(Config.VERSION); // 输出1

在上面的示例中,我们使用了一个静态代码块来加载配置文件,并初始化了两个静态属性NAME和VERSION。在使用示例中,我们直接使用类名来访问这些静态属性。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • static修饰属性
  • static修饰方法
  • 静态代码块
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档