一、类变量
class Child{private String name;//定义一个变量count,是一个类变量(静态变量)static静态//该变量最大的特点就是会被Child 类的所有对象访问public static int count = 0;public Child(String name){this.name = name;}public void join(){System.out.println(name+"加入了游戏");}
}
1.什么是类变量
类变量也叫静态变量/静态属性,是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的
对象去修改它时,修改的也是同一个变量。这个从前面的图也可看出来。
2.如何定义类变量
定义语法:
访问修饰符 static 数据类型 变量名;[推荐]
static 访问修饰符 数据类型 变量名;
class A{public static string name ="abc";static public int totalNum = 100;
}
3.如何访问类变量
类名.类变量名 推荐
或者 对象名.类变量名
【静态变量的访问修饰符的访问权限和范围 和 普通属性是一样的。】
4.类变量使用细节
类变量使用注意事项和细节
1.什么时候需要用类变量,当我们需要让某个类的所有对象都共享一个变量时,就可以考虑使用类变量(静态变量);
比如:定义学生类,统计所有学生共交多少钱。Student(name,staticfee)
2.类变量与实例变量(普通属性)区别类变量是该类的所有对象共享的,而实例变量是每个对象独享的
3.加上static称为类变量或静态变量,否则称为实例变量/普通变量/非静态变量
4.类变量可以通过 类名.类变量名 或者 对象名.类变量名 来访问,但java设计者推荐我们使用 类名.类变量名方式访问。
【前提是 满足访问修饰符的访问权限和范围】
5.实例变量不能通过 类名.类变量名 方式访问。
6.即使你没有创建对象,类变量是在类加载时就初始化了,也就是说,只要类加载了,就可以使用类变量了。【案例演示]
7.类变量的生命周期是随类的加载开始随着类消亡而销毁.
二、类方法基本介绍
1.类方法也叫静态方法
形式如下: 访问修饰符 static 数据返回类型 方法名()){ }【推荐】
static 访问修饰符 数据返回类型 方法名(){ }
类方法的调用使用方式: 类名.类方法名 或者 对象名.类方法名 【前提是 满足访问修饰符的访问权限和范围】
静态方法可以访问静态属性/变量
class B{public static void printstart(){System.out.println("打印星星..”);} }
如果我们希望不创建实例/对象,也可以调用某个方法(当工具来用)
这时,把方法做成静态方法时非常合适
2.类方法使用场景
当方法中不涉及到任何和对象相关的一个成员,则可以将方法设计成静态方法,提高开发效率
比如:Math类,Arrays类 可以ctrl + b 查看他们的源码
在实际开发中,往往会将一些通用的方法,设计成静态方法,无需创建对象就可以使用该方法
例如:冒泡排序,打印一维数组
三、类变量与类方法
1.类方法和普通方法都是随着类的加载而加载,将结构信息储存在方法区
类方法中无this的参数
普通方法中隐含着this参数
2.类方法可以通过类名调用,也可以通过对象名调用。
3.普通方法和对象有关,需要通过对象名调用,比如:对象名.方法名(参数),不能通过类名调用。
4.类方法中不允许使用和对象有关的关键字,比如super和this。普通方法(成员方法)可以。
5.类方法(静态方法)中,只能访问静态变量 或 静态方法。
6.普通成员方法,既可以访问静态变量(方法),可以访问普通变量(方法)。