类变量和类方法
-
/* * 定义一个类变量(静态变量 static)count * 该变量最大的特点就是会被Child 类的所有的对象实例共享 * 类变量可以通过类名来访问 * * 静态(static)变量是同一个类所有对象共享 * static类变量 在类加载的时候就生成了 */ public static int count = 0; public class VisitStatic { public static void main(String[] args) { // 访问方式:类名.类变量名 // 说明:类变量是随着类的加载而创建的 所有即使没有创建对象实例也可以访问 System.out.println(Aa.name); } } class Aa { public static String name = "蔡蔡"; }
-
类变量的使用细节:
-
什么时候使用?
-
当我们需要让某个类的所有对象都共享一个变量时,就可以考虑使用类变量(静态变量)
-
-
类变量与实例变量(普通属性)的区别
-
类变量是该类所有对象共享的,实例变量是每个对象独享的
-
-
加上static称为类变量或静态变量 否则称为实例变量/普通变量/非静态变量/实例变量
-
类变量可以通过 类名.类变量名 或者 对象名.类变量名 来访问 推荐使用类名.类变量名
-
实例变量不能通过类名.变量名来访问
-
类变量在类加载的时候就初始化了,也就是说,即使你没有创建对象,只要类加载了,就可以使用类变量了
-
类变量的生命周期是随类的加载开始,随着类的消亡而销毁
-
-
类方法
-
类方法也叫静态方法 方法用static修饰
-
类方法的调用:类名.类方法名
-
当方法中不涉及到任何对象的成员,则可以
-
如果我们不希望创建实例,也可以点用某个方法(即当作工具来使用)
-
-
类方法的使用细节
-
类方法和普通方法都是随着类的加载而加载 将结构信息存储在方法区 类方法中无this参数 普通方法中隐含着this参数
-
类方法可以通过类名调用,也可以通过对象名调用
-
普通方法和对象有关,需要通过对象名调用,比如对象名.方法名(参数),不能通过类型调用
-
类方法中不允许使用和对象有关的关键字 this和super都不能用
-
类方法/静态方法中只能访问 静态变量或静态方法
-
非静态方法既可以访问静态成员(变量、方法),也可以访问非静态成员(变量、方法)
-