}
package org.westos_08_static关键字;
/*
* static关键字的特点:
* 1)表示静态的,用来共享数据
* 2)static关键字随着类的在而加载
* 3)static优先于对象存在
* 共享数据:
* 举例:饮水机:
* 大家共用饮水机
* 水杯不能共用:
* 4)成员变量或者成员方法如果被static修饰,那么可以用类名直接调用(重点)
*
* 调用成员变量或者成员方法有几种方式:
* 方式1:创建对象调用
* 对象名.成员变量
* 对象名.成员方法
* 方式2:如果想使用类名调用,必须用static修饰!
* */
class Student{
//非静态变量
int num = 200 ;
//静态比那里
static int num2 = 100 ;
public static void show(){
System.out.println("show");
}
}
//测试类
public class StudentDemo {
public static void main(String[] args) {
//创建对象
Student s = new Student() ;
//对象名调用成员变量
System.out.println(s.num);
System.out.println(s.num2);
//对象名调用方法
s.show() ;
Student.show() ;
System.out.println(Student.num2);
}
}
package org.westos_08_static关键字;
/*
* static关键字的注意事项:
* 成员:
* 静态成员
* 静态成员:
* 静态成员变量:只能访问静态变量
* 静态成员方法:只能访问静态成员方法
*
* 简单记:静态只能访问静态
* 非静态成员
* 成员变量:可以是静态变量,也可以非静态变量
* 成员方法:可以是静态成员方法,也可以非静态成员方法
*
* 静态成员中没有this关键字
*
* 静态的特点:类名直接可以调用!
*
* */
class Teacher{
//非静态成员变量
public int num = 20 ;
//静态成员变量
public static int num2 = 30 ;
//非静态成员方法
public void show(){
System.out.println(num2);
System.out.println(num);
}
//静态的成员方法,只能访问静态成员变量
public static void method(){
// System.out.println(num);
System.out.println(num2);
}
public void function(){
method();
}
public static void function2(){
// function() ;
method() ;
}
}
//测试类
public class TeacherDemo {
public static void main(String[] args) {
Teacher t = new Teacher() ;
System.out.println(t.num2);
//类名直接调用:static修饰
System.out.println(Teacher.num2);
t.method() ;
Teacher.method() ;
Teacher.function2() ;
}
}