static关键字

一、static修饰成员变量

static叫做静态,可以用来修饰成员变量和成员方法

成员变量按照有无static,可以分为类变量(有static)和实例变量

static int a; //类变量
int age; //实例变量(对象的变量)

1.类变量在计算机里只有一份,会被类的所有对象共享,属于当前类自己持有(类似全局变量)

2.实例变量则属于每个对象

我们可以通过  类名.类变量  来访问类变量

static关键字_第1张图片

static关键字_第2张图片

注:实例变量不能通过类名访问

因为堆内存中通过类地址访问不到类变量,所以会去找到类对象然后再在堆内存中找到类变量

类变量的应用场景:在开发中某数据只需要一份,且希望可以被共享,比如记录创建了几个对象

public class User{
    public static int num;
    public User(){
           User.num++;
          }
        }

二、static修饰成员方法

同样,根据有无static,可以把成员方法分为类方法和实例方法

可以通过 类名.类方法 或 对象.类方法 访问类方法,对象.实例方法 访问实例方法

static方法里只能有类变量

static关键字_第3张图片

同时注意,main方法也是类方法,是通过类名.main方法执行,并且呢,main 方法中有String[] args这个参数是说明可以接一些数据

应用场景:可以设置工具类,提高代码复用性,建议将工具类的构造器进行私有

public class lei{
          private lei(){
           }
        }

工具类用类方法而不用实例方法,可以节约内存,不然要创建对象

三、static使用注意事项

1.类方法中可以直接访问类的成员,不可以直接访问实例成员

2.实例方法中既可以访问类成员,也可以直接访问实例成员

3.实例方法中可以出现this关键字,类方法中不可以出现

你可能感兴趣的:(java,开发语言)