首页 > 编程语言 >Java - 24 类变量和类方法

Java - 24 类变量和类方法

时间:2024-10-31 15:57:54浏览次数:1  
标签:24 Java 变量 static Child total 方法 加载

Java - 24 类变量和类方法

类变量(静态变量)

非静态变量 = 普通变量 = 实例变量

class Main{
    public static void main(String[] args){
        Child c1 = new Child("wu");
        c1.join();
        c1.count++;
        
        Child c2 = new Child("xin");
        c2.count++;
        
        // 类变量可以通过类名访问
        System.out.println("共有" + Child.count + "个小孩加入了游戏");
    }
}

class Child{
    private String name;
    
    /* ======== */
    public static int count = 0; // 被Child所有对象实例共享
    
    public Child(String name){
        this.name = name;
    }
    public void join(){
        System.out.println(name + "加入了游戏...");
    }
}

类变量内存布局

static变量在哪里?

  • jdk8之前,在堆中class实例的尾部;
  • 在方法区的静态域

static变量在类加载的时候生成

类变量细节

  1. 类变量在类加载时就初始化了,即使没有创建对象,只要类加载了,就可以使用类变量了
  2. 类变量的生命周期随类的加载开始,随类消亡而销毁

类方法(静态方法)

访问修饰符 static 数据返回类型 方法名(){}

类方法的调用

类名.类方法名
对象名.类方法名

使用场景

​ 方法中不涉及到任何和对象相关的成员 (不创建实例也可以调用方法),则可以将方法设计成静态方法,提高开发效率

类方法细节

  1. 类方法和普通方法都是随着类的加载而加载,将结构信息存储在方法区
  2. 类方法中 不能使用和对象有关的关键字,比如: this 和 super
  3. 类方法中,只能访问静态变量和静态方法
class Person{
    private static int total = 0;
    private static void setTotalPerson(int total){
        Person.total = total; // 不是this.total = total;
    }
}

标签:24,Java,变量,static,Child,total,方法,加载
From: https://www.cnblogs.com/wxrwajiez/p/18518099

相关文章

  • 共码未来,花开烂漫:近千名开发者齐聚9地欢度1024程序员节
    10月23日至27日,以“共码未来,待到山花烂漫时”为主题的HDD·1024程序员节专场交流会携手HUAWEIDEVELOPEREXPERTS(HDE)、企业及高校专家,陆续在苏州、武汉、长沙、成都、南京、西安、北京、广州、上海9地举办,向近1000名鸿蒙开发者现场分享了鸿蒙生态最新成果,交流了开发经验与案例。此......
  • 总结 JavaScript 中8种数组常用的操作 API,array.push,pop,shift,unshift,slice,splice
    前言JavaScript中数组是一个重要的数据结构,它相比于字符串有更多的方法,在一些算法题中我们经常需要将字符串转化为数组,使用数组里面的API进行操作。本篇文章总结了JavaScript中有许多数组常用的操作API,以下是一些常见的操作及其示例:1.push():在数组末尾添加一个或多个元素,并......
  • python变量
    1.变量Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。变量定义规则变量名只能是数字,字母或下划线的任意组合变量名的第一个字符不能是数字保留字即关键字,我们不能把它们用作任何标识符名称。Python的标准库提供了一个keyword......
  • java计算机毕业设计儿童思德教育网(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在现代社会,随着信息技术的飞速发展,互联网已经深入到人们生活的各个方面。儿童的成长和教育也受到了互联网的深刻影响。传统的儿童思德教育方式往......
  • Java基础
    JavaC类语言:底层都由C语言实现,语法和C语言一样程序语言的建立原始团队:创建具备基本功能、具有内核核心的新语言邀请:业界大牛进行功能拓展和完善推广吸引更多业界大牛进行语言的版本更新后,功能更为全面——有更完善的库实现,实现某些代码的代码会越来越少。功能丰富不代表性能......
  • 2024.10.31总结
    本文于github同步更新。最后一天喽A:卡双模哈希......
  • AP2400芯片
    AP2400是一款PWM工作模式,高效率、外围简单、外驱功率管,适用于输入的高精度降压LED恒流驱动芯片。外驱MOS,最大输出电流可达6A。AP2400可实现三段功能切换,通过MODE1/2/3切换三种功能模式:全亮,半亮,爆闪AP2400工作频率固定在150KHZ左右,同时内置抖频电路,可以降低对其......
  • AP2402芯片
    玩具手电筒LED驱动降压恒流ICAP2402带爆闪教全亮/半亮/爆闪产品描述AP2402是一款PWM工作模式,高效率、外围简单、内置功率管,适用于5-100V输入的高精度降压LED恒流驱动芯片。输出最大功率可达15W,最大电流1.5A。AP2402可实现三段功能切换,通过MODE1/2/3切换三种功能......
  • 界面控件Kendo UI for Angular 2024 Q3亮点 - 全新的页面模板
    随着最新的2024Q3版本,Progress使用户能够使用现成的页面模板和构建块更快地构建令人惊叹的应用程序,使您的Telerik和KendoUI开发体验更好。Telerik和KendoUI 2024Q3版本将焦点放在新推出的页面模板和构建块上,每个页面模板和构建块都预先配置了TelerikUIforBlazor、KendoU......
  • 使用JavaScript实现:随机曲线之间进行平滑切换
    介绍今天,我运用拉格朗日插值法绘制了一条曲线。然而,我并未止步于静态展示,而是引入了一个定时器,每隔一段时间便对曲线上的点进行动态更新,从而赋予曲线生命般的动态变化。然而,在刷新过程中,我敏锐地察觉到曲线之间的切换显得过于突兀,缺乏流畅感(请见下图)。于是,一个大胆的想法......