写点什么

static 修饰符学习汇总,android 系统软件开发

用户头像
Android架构
关注
发布于: 刚刚

public class Client {


public static void main(String[] args) {


// 实例化对象


Shop s1 = new Shop("徐汇区");


Shop s2 = new Shop("闵行区");


s1.sale();


s2.show();


}


}


打印:


徐汇区售票厅售出 1 张票!


徐汇区售票厅剩余票数:99 张!


闵行区售票厅剩余票数:100 张!


这种结果是不行的,因为闵行区的剩余票数与实际结果不符,这是因为 s1 和?s2 有各自的成员变量 tickets,互不相关。接下来看一下内存分布。

1.1.2、内存分布


static 修饰符


  • 作用在成员属性:静态变量

  • 作用在成员方法:静态方法


1.2、使用静态变量



1.2.1、静态变量

/**


  • 售票厅类


*/


public class Shop {


// 显示构造器


public Shop(String name) {


this.name = name;


}


// 成员属性


public String name;


// 静态变量


public static int tickets = 100;


// 成员方法


public void sale() {


tickets--;


System.out.println(this.name + "售票厅售出 1 张票!");


show();


}


public void show() {


System.out.println(this.name + "售票厅剩余票数:" + tickets + "张!");


}


}


打印:


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


徐汇区售票厅售出 1 张票!


徐汇区售票厅剩余票数:99 张!


闵行区售票厅剩余票数:99 张!

1.2.2、内存分布


1.3、概念




  • 1、成员属性是属于对象的,静态变量是属于类的。

  • 2、静态变量的访问,使用:类名.静态变量。例如,Shop.tickets。

  • 3、成员属性是在对象被实例化时创建,静态变量是在 ClassLoader 类型加载器加载类时被创建。


静态变量作用在成员方法上


2.1、代码




/**


  • 售票厅类


*/


public class Shop {


// 显示构造器


public Shop(String name) {


this.name = name;


}


// 成员属性


public String name;


// 静态变量


public static int tickets = 100;


// 成员方法


public void sale() {


tickets--;


System.out.println(this.name + "售票厅售出 1 张票!");


show();


}


//静态方法


public static void show() {


System.out.println("系统剩余票数:" + tickets + "张!");


}


}


public class Client {


public static void main(String[] args) {


// 实例化对象


// Shop s1 = new Shop("徐汇区");


// Shop s2 = new Shop("闵行区");


//


// s1.sale();

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
static修饰符学习汇总,android系统软件开发