static关键字修饰成员变量
public class StaticExample {
public static void main(String[] args) {
Student stu1=new Student("郭靖",18);
stu1.room="第一教室";
System.out.println("名字="+stu1.getName()+" "+"年龄="+stu1.getAge()+" "+"教室="+stu1.room+" "+"学号="+stu1.getId());
Student stu2=new Student("黄蓉",15);
System.out.println("名字="+stu2.getName()+" "+"年龄="+stu2.getAge()+" "+"教室="+stu2.room+" "+"学号="+stu2.getId());
}
}
输出结果为:
static关键字修饰方法
public class StaticMethod {
public static void main(String[] args) {
myClass my=new myClass();//首先创建对象
//然后才能使用没有static关键字修饰的内容
my.method();
//对于静态方法而言,可以通过对象名进行调用,也可以直接通过类名称来调用
my.methodStatic(); //正确,不推荐,这种写法也会在编译之后被javac翻译成“类名称.静态方法名”
myClass.methodStatic();//正确,推荐
//对于本类当中的静态方法,类名称可以省略
mythod();
StaticMethod.mythod(); //效果完全一样
}
public static void mythod(){
System.out.println("这是本类的静态方法");
}
}
输出结果:
注意事项:
public class myClass {
int num;//成员变量
static int numStatic;//静态变量
//成员方法
public void method(){
System.out.println("这是一个普通的成员方法!");
//成员方法可以访问成员变量
System.out.println(num);
//成员方法可以访问静态变量
System.out.println(numStatic);
}
//静态方法
public static void methodStatic(){
System.out.println("这是一个静态方法");
//静态方法可以访问静态变量
System.out.println(numStatic);
//静态方法不能直接访问非静态【重点】
//System.out.println(num);//错误写法
}
}