转发请注明出处:
安卓猴的博客(http://sunjiajia.com)
本节课程将学习以下内容:
- 静态成员变量的语法特点
- 静态函数的语法特点
- 静态代码块的语法特点
静态成员变量的语法特点
在定义成员变量的时候,在前面添加一个static关键字。
- 格式:static int i;
特点:
- 静态成员变量可以直接用类名来调用,格式为:类名.成员变量名;
- 所有的对象使用的静态变量是同一份,任何一个对象的静态变量被修改,那么其他对象的静态变量也会被修改。
静态、普通成员变量的区别:
看图:(理解)
例子:(请动手加深理解)
1.新建一个名为Person.java的Java源代码文件:
class Person{
static int i;
}
2.新建一个名为Demo01.java的Java源代码文件:
class Demo01{
public static void main(String[] args) {
Person p1 = new Person();
Person p2 = new Person();
// 调用静态成员变量,
// 由于所有对象使用的静态变量是同一份,所以,
// p1.i 和 p2.i 的值都是10。
Person.i = 10;
System.out.println("p1的i的值为:" + p1.i);
System.out.println("p2的i的值为:" + p2.i);
System.out.println("=======分割线=======");
Person.i = 20;
System.out.println("p1的i的值为:" + p1.i);
System.out.println("p2的i的值为:" + p2.i);
System.out.println("=======分割线=======");
// 由于所有对象使用的静态变量是同一份,所以,
// 静态变量i的值先被p1.i = 30赋值为30,
// 再被p2.i = 40赋值为40,
// 最后,打印出来的p1.i和p2.i的值都为40。
p1.i = 30;
p2.i = 40;
System.out.println("p1的i的值为:" + p1.i);
System.out.println("p2的i的值为:" + p2.i);
}
}
静态函数的语法特点
格式:static 返回值类型 函数名{}
特点:
- 静态函数量可以直接用类名来调用,格式为:类名.函数名();
- 静态函数中不能使用非静态成员变量;(注意)
例子:(请动手)
1.新建一个名为Dog.java的Java源文件:
class Dog{
String name;
static String color;
void shout01(){
System.out.println("Dog的名字是:" + this.name);
}
static void shout02(){
// 静态函数只能使用静态成员变量color。
System.out.println("静态函数shout02(),Dog的颜色是:" + color);
}
}
2.新建一个名为Demo02.java的Java源文件:
class Demo02{
public static void main(String[] args) {
Person.name = "小黄";
Person.color = "黄色";
Dog.shout01();
// 用类名直接调用静态函数
Dog.shout02();
}
}
静态代码块的语法特点
作用:主要作用是为静态变量赋值初始值。
格式:
static{
语句;
}
特点:
- 没有名字,只有一个static;
- 静态代码块在装载当前所在类的时候执行。