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

Java学习笔记——类变量和类方法

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

Java学习笔记——类变量和类方法

类变量 引入

要统计共有多少小孩加入了游戏,已有解法如下:

package staticDemo;

public class Child {

    private String name;

    public Child(String name) {
        this.name = name;
    }

    public void join(){
        System.out.println(name + "加入了游戏...");
    }

    public static void main(String[] args) {
        
        int count = 0;
        Child child1 = new Child("阿明");
        child1.join();
        count++;
        Child child2 = new Child("阿东");
        child2.join();
        count++;
        Child child3 = new Child("阿瓜");
        child3.join();
        count++;
        System.out.println(count + "人参加了游戏...");
    }
}

存在的问题:
在main()中设置了一个count变量来统计child数量,但是在Child类中却没有定义。
解决方法:
将count设置为static
p1和p2有共享空间

修改后的程序如下
package staticDemo;

public class Child {

    private String name;
    private static int count = 0;

    public Child(String name) {
        this.name = name;
    }

    public void join(){
        System.out.println(name + "加入了游戏...");
    }

    public static void main(String[] args) {

        int count = 0;
        Child child1 = new Child("阿明");
        child1.join();
        child1.count++;
        Child child2 = new Child("阿东");
        child2.join();
        child2.count++;
        Child child3 = new Child("阿瓜");
        child3.join();
        child3.count++;
        System.out.println(Child.count + "人参加了游戏...");
        System.out.println(child1.count);
        System.out.println(child2.count);
        System.out.println(child3.count);
    }
}
结果

阿明加入了游戏…
阿东加入了游戏…
阿瓜加入了游戏…
3人参加了游戏…
3
3
3

何时需要类变量

当我们需要让某个类的所有对象都共享一个变量时,就可以考虑使用类变量(静态变量)

类变量和实例变量的区别

类变量时该类的所有对象共享的,而实例变量时每个对象单独享有的。

static内存
  • 共享的空间是一个堆空间 ,被对象共享
  • static类变量,在类加载的时候就生成了,所以即使没有创建对象实例也可以访问
如何访问类变量
  • 对象名.类变量名
  • 类名. 类变量名
  • 类变量的访问,必须遵守相关的访问权限
类方法 如何调用类方法
  • 对象名.类方法
  • 类名.类方法
  • 类方法的访问,必须遵守相关的访问权限
什么时候调用类方法

当方法中不涉及到任何和对象相关的成员,则可以将方法设计成静态方法,提高开发效率
比如:utils类,Math类,Arrays类,Collections类

注意事项
  • 类方法中不能使用this,super
  • 类方法中只能访问静态变量或静态方法
  • 普通方法,可以访问静态成员和非静态成员
main()方法

public static void main(String[] args)

  • main方法是虚拟机调用的
  • Java虚拟机在执行main()方法,所以该方法的访问权限必须是public
  • Java虚拟机在执行main()方法时不必创建对象,所以该方法必须是static
  • String[] args,该方法接收的是String类型的数组参数,该数组中保存执行java命令时传递给所运行的类的参数

    idea中设置运行的类的参数

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

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

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