Java学习笔记——类变量和类方法
Posted Ashling LI
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中设置运行的类的参数
以上是关于Java学习笔记——类变量和类方法的主要内容,如果未能解决你的问题,请参考以下文章