嗨客网搜索
Java开发环境搭建
Java方法
Java static关键字

Java static关键字教程

Java 语言 中,我们了解到想要调用一个类里面的属性或者方法,我们要对类进行实例化,创建对象,然后根据使用对象来调用对应的属性或者方法。

这些属性和方法是对象维度的,如果类里面定义了一个 static 类型的属性或者方法,那么这个被 static 修饰的属性或者方法就是类维度的。

Java static详解

语法

static 属性/方法

参数

参数 描述
static 使用 static 的关键字

说明

要想使用类维度的属性和方法,我们在属性的前面或者方法前面加上 static 就可以了。

案例

static 可以修饰属性和方法,拥有了 static 修饰的属性或者方法,他们就是类维度的,可以用 类名. 直接调用。当然想用对象名称调用任然是可以的。我们先定义一个 Person 类来使用 static 关键字。将区域 area 这个属性设置为 static 类型。

package com.haicoder.net.haistatic; public class Person { private String name; private Integer age; static String area = "中国,南京"; public Person(String name, Integer age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public static String getArea() { return area; } public static void setArea(String area) { Person.area = area; } }

static声明属性

package com.haicoder.net.haistatic; public class StaticTest { public static void main(String[] args) { System.out.println("嗨客网(www.haicoder.net)"); System.out.println("直接访问类维度的属性: " + Person.area); Person person1 = new Person("嗨客", 20); System.out.println("\n类维度的城市修改前:"); Person person2 = new Person("面条小子",21); info(person1); info(person2); System.out.println("\n类维度的城市修改后:"); Person.area = "中国,上海"; info(person1); info(person2); } private static void info(Person person) { System.out.println("姓名:" + person.getName() + " 年龄:" + person.getAge() + " :区域" + Person.area); } }

运行结果如下:

27 static 属性.png

我们可以看到,我们定义了一个 static 类型的 area 属性,然后我们用 Person.area 就可以直接访问了。然后我们对类的属性 area 进行了修改,修改后再打印出 area 属性值的时候,所有的对象里面的属性值都发生改变了。

static声明方法

package com.haicoder.net.haistatic; public class StaticTest { public static void main(String[] args) { System.out.println("嗨客网(www.haicoder.net)"); System.out.println("直接访问类维度的属性: " + Person.getArea()); Person person1 = new Person("嗨客", 20); System.out.println("\n类维度的城市修改前:"); Person person2 = new Person("面条小子",21); info(person1); info(person2); System.out.println("\n类维度的城市修改后:"); Person.setArea("中国,上海"); info(person1); info(person2); } private static void info(Person person) { System.out.println("姓名:" + person.getName() + " 年龄:" + person.getAge() + " :区域" + Person.area); } }

运行结果如下:

28 stati修饰方法.png

我们对属性的操作 get 和 set 方法加了 static 关键字,表示这个方法是类维度的,我们可以通过 类名.方法名 直接调用。赋值后,所有对应的对象里面的属性值都改变了。

static修饰输出存储空间

在 Java 中会单独的开辟一个内存空间,方法区用来存储被 static 修饰的属性信息。我们会发现,方法区中的属性改变之后,无论哪个对象,只要引用到这个属性的,都会改变。

29 static 存储空间.png

Java static关键字总结

staitc 是类维度的关键字,它可以将属性和方法从对象维度变成类维度,我们可以用类直接调用属性,也可以用对应的对象调用相应属性。它的值改变会影响所有使用到该属性值的对象。

嗨客网顶部