美文网首页
Java中的static方法访问特点 + static变量特点

Java中的static方法访问特点 + static变量特点

作者: 夜希辰 | 来源:发表于2021-05-05 16:26 被阅读0次

学习笔记:仅static访问特点

目录
1、static修饰的方法访问特点
2、static变量的特点

参考文章:Java中的static关键字解析

static是一个修饰符,static关键字是静态的意思,可以修饰成员方法,成员变量
static关键字的用途:方便在没有创建对象的情况下来进行调用(方法/变量)

1、static修饰的方法访问特点

static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。
并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。

static修饰的方法访问特点

  • 非静态的成员方法
    能访问静态的成员变量、非静态的成员变量、静态的成员方法、非静态的成员方法
  • 静态的成员方法
    仅能访问静态的成员方法、静态的成员变量
public class Student  {
    //非静态成员变量
    private String name = "";
    //静态成员变量
    private static String university = "传智大学";
    //非静态成员方法
    public void show(){
    }
    //非静态成员方法
    public void show2(){
        System.out.println(name);//非静态成员变量
        System.out.println(university);//静态成员变量
        show();//非静态成员方法
        show3();//静态成员方法
    }
    //静态成员方法
    public static void show3(){
    }

    //静态成员方法
    public static void show4(){
//        System.out.println(name);//非静态成员变量  报错
        System.out.println(university);//静态成员变量
//        show();//非静态成员方法   报错
        show3();//静态成员方法
    }
}

2、static变量的特点

static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量所有的对象共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。
而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。

static成员变量的初始化顺序按照定义的顺序进行初始化。static是不允许用来修饰局部变量,无论在静态方法,还是在非静态方法中static都不允许用来修饰局部变量

static变量的特点

  • 被类的所有对象共享,这也是我们判断是否使用静态关键字的条件
  • 可以通过类名调用,当然也可以通过对象名调用
  • 推荐使用类名调用
public class Student  {
    public String name;//姓名
    public int age; //年龄
    public static  String university;//学校
    public static  String address;//地址

    public void show(){
        System.out.println("name="+ name +"," + "age="+ age +"," + "university="+ university +"," +"address="+address);
    }
}
public class ExtendsDemo {
    public static void main(String[] args) {
        Student.university = "传智大学";
        Student s =  new Student();
        s.name="小扬";
        s.age = 18;
        s.address ="成都";
        s.show();
        System.out.println("------------------");

        Student s1 =  new Student();
        s1.name="小袁";
        s1.age = 18;
        s1.show();
    }
}

在S1对象中,没有给address赋值,在输出结果中,S1调用show()地址值也是成都。也说明static修饰成员变量,如果在某个对象中赋值,这个赋值结果被该类的所有对象共享。
一般static修饰成员变量修饰的成员变量,赋值用类名.成员变量名赋值,如Student.university = "传智大学";

相关文章

  • Java中的static方法访问特点 + static变量特点

    学习笔记:仅static访问特点 目录1、static修饰的方法访问特点2、static变量的特点 参考文章:Ja...

  • JavaSE总结(3)内部类和异常

    一、static: static:静态修饰符 可以修饰成员 成员变量 成员方法 特点: static修饰的成员是属...

  • static关键字

    static:静态的 特点:1:其修饰的成员变量随着类的加载就在方法区中的静态区开辟内存, 优先于非static...

  • 2019-03-06 Java Interface

    Java static static 特点 static是一个修饰符,用于修饰成员。 static修饰的成员被所有...

  • 2019-03-07 Java static

    Java static static 特点 static是一个修饰符,用于修饰成员。 static修饰的成员被所有...

  • Swift 记点东西

    类方法访问不了外部变量如果想访问,在外部变量加static但是加了static, 对象方法访问不了... swif...

  • Java基础-static关键字和单例模式

    static关键字 static关键字的特点用来修饰类的成员-修饰成员变量的称之为类变量(静态变量),修饰成员方法...

  • Java学习day-08:继承

    一、Static关键字: 1.特点 (1)用Static关键字声明的方法及属性称静态变量和静态方法;也称类变量,和...

  • Java的一些基础知识

    static static 可以修饰方法 和变量,和静态的内部类(单例的静态内部懒汉式还记得不?)特点:stati...

  • static的用法

    1、静态成员变量的特点。 static 【函数类型】【变量名】 static定义的变量属于类级别的变量,不是对象级...

网友评论

      本文标题:Java中的static方法访问特点 + static变量特点

      本文链接:https://www.haomeiwen.com/subject/qgakdltx.html