被static修饰的变量和方法的特点

1 阅读2分钟

static修饰变量和方法:

称为类变量/类方法或者静态变量/静态方法,是被所有对象所共享的,可用【类名.变量/方法名】的方式访问,也可以使用【对象名.】的方式访问,但是不推荐这样用,idea不会有代码提示,一些代码规范插件会直接把这种方式视为错误,用红色下划线标记(但程序可运行)。

另外需要注意的是,静态方法内只能调用静态方法和静态变量,不能调用非静态方法和非静态变量;而非静态方法内没有限制。

public class StaticTest {
    // 类变量(静态变量)
    public static int count = 10;

    // 成员变量
    public int num = 0;

    // 类方法(静态方法)
    public static int add(int a, int b) {
        // 类方法内,只能调用类方法,不能调用非静态方法
        //sum();
        // 类方法内,只能访问静态变量,不能访问非静态变量
        //return a + num;
        return a + b;
    }

    // 成员方法
    public int sum(int a, int b, int c) {
        // 非静态方法内,没有限制
        add(a, b);
        return add(a, b) + c;
    }
}
	// 使用【类名.】的方式访问类变量和调用类方法
	int count = StaticTest.count;
	int add = StaticTest.add(count, 10);
	
	// 成员变量和成员方法必须先要创建类对象才能使用
	StaticTest staticTest = new StaticTest();
	int num = staticTest.num;
	int sum = staticTest.sum(num, 10, 20);
	
	// 需要注意的是,使用对象名也可以访问其类变量和类方法,但不推荐这样使用
	int count1 = staticTest.count;
	int add1 = staticTest.add(count1, 10);

使用场景:

类变量可以用在对象的构造器中,比如设置一个累计器count = 0,每次new对象时,会调用对象的构造器,count++,这样可以统计对象的创建个数。

类方法可以用在工具类中,我们使用的Arrays、Collections工具类内的方法都是用static修饰的,可以直接用【类名.方法名】的方式使用,非常方便。 在这里插入图片描述

首次发布

hezhongying.blog.csdn.net/article/det…