栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中的静态变量&静态方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中的静态变量&静态方法

静态变量&静态方法

        静态变量又叫做类变量,静态方法又被称为类方法——均被static修饰

        未被static修饰的成员变量和方法分别被称为实例变量和实例方法

(1)静态方法中不需要它所属类的任何实例就可以访问,所以在静态方法中不可以使用this关键字

(2)静态方法中不可直接访问所属类的实例变量和实例方法,但可以直接访问所属类的静态变量和静态方法

        如图所示,如果在静态方法中想要直接访问所属类的实例变量和实例方法或使用this关键字,编译器都会报错

(3)静态变量(方法)的访问方式:类名.变量名(方法名)

         实例变量(方法)需要先将类实例化后才可访问:实例化名.变量名(方法名)

         如图所示,未实例化时使用“类名.变量名(方法名)”就可以直接访问静态变量(方法),但无法访问相应类的实例变量和实例方法

        如图所示,当将类实例化后,使用“实例化名.变量名(方法名)”就可以直接访问实例变量(方法),但无法访问相应类的静态变量和静态方法

 (4)在内存中,实例/静态成员的存储形式大致如图

        所有静态成员共享一份内存——静态变量某种意义上具有全局性质

        而不同实例间的实例变量彼此互不干涉

        以下是一个代码范例:

public class staticclass {
    public static int count = 0; //静态变量
    public int num =0; //非静态变量
    public static void method1(){ //静态方法
        System.out.println("正在访问静态方法(count++)....");
        System.out.println("tpre-count = "+count);
        count++;
        //num++; //静态方法中不可以访问实例变量
        //method2();  //静态方法中不可以访问实例方法
        //System.out.println(this.num); //静态方法中不可以使用this关键字
        System.out.println("tpst-count = "+count);
    }
    public void method2() //实例方法
    {
        System.out.println("正在访问实例方法(count+2,num+3)....");
        System.out.println("tpre-count = "+count);
        System.out.println("tpre-num = "+num);
        count+=2;
        num+=3;
        System.out.println("tpst-count = "+count);
        System.out.println("tpst-num = "+num);
    }

    public static void main(String[] args) {
        System.out.println("初始时,count = "+staticclass.count); //访问静态变量:类名+变量名
        staticclass.method1();//访问静态方法:类名+变量名
        staticclass a = new staticclass();
        System.out.println("na未操作前,count = "+staticclass.count);
        System.out.println("         num = "+a.num);
        a.method2();
        staticclass b = new staticclass();
        System.out.println("nb未操作前,count = "+staticclass.count);
        System.out.println("         num = "+b.num);
        b.method2();
    }
}

 运行结果如图,可印证以上三点:

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/956328.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号