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

面向对象进阶1---Static关键字

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

面向对象进阶1---Static关键字

面向对象进阶—Static关键字 面向对象进阶需要学习什么

Static关键字的作用

成员变量–静态成员变量,实例成员变量

代码演示
package Static_Demo;

public class User {
    // 静态成员变量(有static修饰,属于类,内存中加载一次): 常表示如在线人数信息、等需要被共享的信息,可以被共享访问。
    // 静态成员变量
    public static int onlineNumber = 161;
    // 实例成员变量(无static修饰,存在于每个对象中):常表示姓名name、年龄age、等属于每个对象的信息。
    // 实例化成员变量
    private String name;
    private int age;

    public static void main(String[] args) {

        // 2、对象.实例成员变量
        User u1 = new User();

        u1.name = "猪八戒";
        u1.age = 35;
        // 对象.静态成员变量(不推荐写法)
        u1.onlineNumber++;

        User u2 = new User();
        u2.name = "孙悟空";
        u2.age = 45;
        //1、类名.静态成员变量(推荐写法)
        User.onlineNumber++;

        // 注意:同一个类中访问静态成员变量,静态成员变量可以省略不写
        System.out.println(onlineNumber);

    }

}

运行结果:

静态成员变量的内存原理–以上述代码为例

首先计算机开辟三块区域用于存放代码—方法区,栈内存,堆内存

紧接着计算机开始执行代码,首先先执行类代码User.class,然后执行main方法,并将main方法存放入栈内存中,堆内存程序开始时已经存在了对象的静态变量区,初始化的在线人数为161

程序开始一行一行执行

开始创建对象,用户对象首先再栈内存存中开辟一地址,然后再堆内存中开辟用户的姓名,年龄等实例成员变量,同时该用户对象也指向静态成员变量


开辟第二个用户对象,流程如上

总结

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

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

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