当前位置: 首页 > news >正文

Java进阶学习笔记2——static

static:

叫静态,可以修饰成员变量、成员方法。

成员变量按照有无static修饰,分为两种:

类变量:有static修饰,属于类,在计算机中只有一份,会被类的全部对象共享。静态成员变量。

实例变量(对象的变量):无static修饰,属于每个对象。

类名.类变量(推荐)

对象.类变量(不推荐)

Student类:

package cn.ensource.d1_staticdemo;public class Student {// 类变量static String name;// 实例变量(对象变量)int age;
}

Test类: 

package cn.ensource.d1_staticdemo;public class Test {public static void main(String[] args) {// 目标:掌握有无static修饰成员变量的用法、特点// 1. 类变量的用法Student.name = "袁华";Student s1 = new Student();s1.name = "马东梅";Student s2 = new Student();s2.name = "秋雅";System.out.println(s1.name); // 秋雅System.out.println(Student.name);s1.age = 23;s2.age = 18;System.out.println(s1.age);System.out.println(s2.age);}
}

成员变量执行原理:

 类变量直接放在堆内存中。

类变量:属于类,与类一起加载一次,在堆内存中只有一份,可以被类和类的所有对象共享。

实例变量:属于对象,每个对象都有一份,只能用对象访问。

类变量的应用场景:

在开发中,如果某个数据只需要一份,且希望能够被共享(访问、修改),则该数据可以定义类变量来记住。

案例导学:

系统启动后,要求用户类可以记住自己创建了多少个用户对象了。

package cn.ensource.d1_staticdemo;public class User {public static int number;  // 类变量对外公开,方便别人访问public User() {
//        User.number++;// 注意:在同一个类中,访问自己的类变量number++;}
}
package cn.ensource.d1_staticdemo;public class Test2 {public static void main(String[] args) {// 目标:通过案例理解类变量的应用场景User user1 = new User();User user2 = new User();User user3 = new User();System.out.println(User.number);User user4 = new User();System.out.println(User.number);}
}

访问自己类中的类变量,是否可以省略类变量不写呢?

可以的。

注意:在某个类中访问其他类里的类变量,必须带类名访问。

http://www.lryc.cn/news/352215.html

相关文章:

  • spring boot集成Knife4j
  • redis核心面试题一(架构原理+RDB+AOF)
  • STM32F1之SPI通信·软件SPI代码编写
  • 实战:生成个性化词云的Python实践【7个案例】
  • 云存储与云计算详解
  • 【飞舞的花瓣】飞舞的花瓣代码||樱花代码||表白代码(完整代码)
  • 网络安全的重要组成部分:数据库审计
  • gc和gccgo编译器
  • 开放重定向漏洞
  • 基于YoloV4汽车多目标跟踪计数
  • 交叉编译程序,提示 incomplete type “struct sigaction“ is not allowed
  • 叶面积指数(LAI)数据、NPP数据、GPP数据、植被覆盖度数据获取
  • 光环P3O不错的一个讲座
  • Typescnipt 学习笔记
  • 如何在 Ubuntu 24.04 (桌面版) 上配置静态IP地址 ?
  • 小恐龙跳一跳源码
  • 快手二面准备【面试准备】
  • 贪心算法2(c++)
  • Bugku Crypto 部分题目简单题解(四)
  • 软考备考三
  • Fortran: select type
  • QEMU启动Linux内核
  • Golang | Leetcode Golang题解之第109题有序链表转换二叉搜索树
  • Qt快速入门到熟练(电子相册项目(一))
  • 机械臂与Realsense D435 相机的手眼标定ROS包
  • ubuntu使用记录——如何使用wireshark网络抓包工具进行检测速腾激光雷达的ip和端口号
  • C#学习指南:重要内容与实用技巧
  • display(a,b)什么意思
  • SpringBoot3整合阿里云短信服务-1(配置阿里云短信服务)
  • 基于HAL库控制LED流水灯