首页后端开发其他后端知识如何掌握Java static操作符,有哪些知识

如何掌握Java static操作符,有哪些知识

时间2024-03-25 19:22:03发布访客分类其他后端知识浏览1524
导读:这篇文章给大家介绍了“如何掌握Java static操作符,有哪些知识”的相关知识,讲解详细,步骤过程清晰,对大家进一步学习和理解“如何掌握Java static操作符,有哪些知识”有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大...
这篇文章给大家介绍了“如何掌握Java static操作符,有哪些知识”的相关知识,讲解详细,步骤过程清晰,对大家进一步学习和理解“如何掌握Java static操作符,有哪些知识”有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。

static修饰成员变量

在Java中,被static修饰的成员,称之为静态成员,也可以称为类成员,其不属于某个具体的对象,是所有对象所共享的。

举个例子:

class Animal{
    
    String name;
    
    int age;
    
    static String type = "Dog";

    //构造方法
    public Animal(String name,int age){
    
        this.name = name;
    
        this.age = age;

    }

    public void SetAnimal(){
    
        System.out.println(this.name+" "+this.age+" "+type);

    }

}

public class Test {

    public static void main(String[] args) {
    
        Animal animal1 = new Animal("小白",1);
    
        Animal animal2 = new Animal("大黄",2);
    
        animal1.SetAnimal();
    
        animal2.SetAnimal();

    }

}

运行结果如下图所以:

我定义了一个动物类,成员变量有名字和年龄,还有一个被static修饰的变量type(种类),以及一个构造方法。我在主函数中创建了两个对象,对象的种类都是狗。并用构造方法为我创建的两个变量进行赋值。而种类type是我实现在定义定义变量的时候就进行初始化的,这种初始化变量叫做就地初始化。

注意: s t a t i c 修 饰 的 成 员 变 量 不 是 一 定 要 就 地 初 始 化 \color{ #FF0000} { static修饰的成员变量不是一定要就地初始化} static修饰的成员变量不是一定要就地初始化

在我们用完static修饰完type之后,type就是静态成员变量,静态成员变量也叫类变量。没被static修饰的成员变量叫做普通成员变量。静态成员变量有个特点就是 不 属 于 对 象 \color{ #FF0000} { 不属于对象} 不属于对象。

什么是不属于对象?

也就是说static修饰过的变量,是不依赖对象的。举个例子:

class Animal{
    
    String name;
    
    int age;
    
    static String type = "Dog";

    //构造方法
    public Animal(String name,int age){
    
        this.name = name;
    
        this.age = age;

    }

    public void SetAnimal(){
    
        System.out.println(this.name+" "+this.age+" "+type);

    }

}

public class Test {

    public static void main(String[] args) {
    
        Animal animal1 = new Animal("小白",1);
    
        Animal animal2 = new Animal("大黄",2);
    
        System.out.println(animal1.type);
    
        System.out.println(Animal.type);

    }

}

仍然是上面的代码,我们都知道 对象名.成员变量可以访问成员变量,而访问static修饰的成员变量不需要创建对象,可以直接通过 类名.静态成员变量进行访问。运行结果结果如图所示:

两个打印的结果都是Dog,所以static修饰的变量不属于对象,因为不需要创建对象也可以访问。如果大家是想访问static修饰的变量,建议大家就直接用类名.静态成员变量就可以了,不建议使用对象.变量名进行访问。

静态成员变量的特性

  • 不属于某个具体的对象,是类的属性,所有对象共享的,不存储在某个对象的空间中
  • 既可以通过对象访问,也可以通过类名访问,但一般更推荐使用类名访问
  • 类变量存储在方法区当中
  • 生命周期伴随类的一生(即:随类的加载而创建,随类的卸载而销毁)
  • 可以不初始化,如果就地初始化了如果没被final修饰也是可以通过方法进行修改的

static修饰的成员方法

static修饰的成员方法和成员变量一样 ,不属于对象。static修饰的成员方法也叫类方法。也就是说,如果我想调用static修饰的成员方法直接用 类名.成员方法 就可以了。举个例子:

class Animal{
    
    String name;
    
    int age;
    
    static String type = "Dog";

    public static void staticFunc(){
    
        System.out.println("static修饰的成员方法");

    }

}

public class Test {

    public static void main(String[] args) {
    
        Animal animal1 = new Animal("小白",1);
    
        Animal animal2 = new Animal("大黄",2);
    
        Animal.staticFunc();

    }

}
    

我们平时写的方法一般都是static修饰的,为什么要用static修饰我相信你的心里应该也有答案了。

因为static修饰的方法不属于对象,不需要创建对象就可以直接使用。你也可以把static修饰的成员方法看成我们平时写的方法,只不过这是个在不同的类里面定义的一个成员方法罢了。

static修饰的成员方法是不依赖于对象的方法,所以在static修饰的方法中,不能直接访问普通的成员变量,因为普通的成员方法是需要依赖对象的。如果不创建对象,直接在static中修饰的成员方法中访问普通成员变量是不可以的。如果想要在static中修饰的成员方法中访问成员变量,有两种方法,第一种是直接在static修饰的成员方法中创建一个对象,这样就可以访问了。第二种是把创建好的对象作为static修饰成员方法的形参,这样也可以直接访问。

静态方法特性

  • 不属于某个具体的对象,是类方法
  • 可以通过对象调用,也可以通过类名.静态方法名(…)方式调用,更推荐使用后者
  • 不能在静态方法中访问任何非静态成员变量

到此这篇关于“如何掌握Java static操作符,有哪些知识”的文章就介绍到这了,感谢各位的阅读,更多相关如何掌握Java static操作符,有哪些知识内容,欢迎关注网络资讯频道,小编将为大家输出更多高质量的实用文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何掌握Java static操作符,有哪些知识
本文地址: https://pptw.com/jishu/652986.html
C++与PHP的区别在哪,你知道多少? Java super关键字的基本用法和应用是什么

游客 回复需填写必要信息