static关键字(代码练习)

public class StaticTest {

    String name;//实例属性,也叫非静态属性
    static String address="山西省";//静态属性,也叫类的属性


    //构造方法
    StaticTest(String name){
        this.name=name;
    }
    //静态方法
    public static void display(){
        System.out.println("OK");
    }
    //类存在,静态方法就存在,但是只有调用时,才会执行
    public static void print(){
        System.out.println("执行了print静态方法");
        System.out.println(address);
        //System.out.println(name); 不能访问
        display();
        //show();//不能访问
    }

    //实例方法
    public void show(){
        System.out.println("执行了show实例方法");
        System.out.println(address+"--show--");
        System.out.println(name+"--show--");
        print();
        study();
    }
    public void study(){
        System.out.println("执行了study实例方法");
    }

}
class StudentTest{
    public static void main(String[] args){
        System.out.println(StaticTest.address);//静态变量可以使用类名来直接调用
        //System.out.println(StaticTest.name);//实例变量不可以用类名来访问
        StaticTest stu=new StaticTest("mama");
        System.out.println(stu.name);
        System.out.println(stu.address);//静态变量也可以使用对象名来调用

        stu=null;
        //System.out.println(stu.name);//报错:空指针异常
        System.out.println(stu.address);//注意:当对象的值为null,可以访问static修饰的成员

        //类名直接调用静态方法
        System.out.println("--------");
        StaticTest.display();
        StaticTest.print();
        System.out.println("--------");

        StaticTest stu2=new StaticTest("baba");
        stu2.show();
        stu2.study();
        //对象调用静态方法
        System.out.println("--------");
        stu2.display();
        stu2.print();
        System.out.println("--------");






    }
}

结果:

山西省
mama
山西省
山西省
--------
OK
执行了print静态方法
山西省
OK
--------
执行了show实例方法
山西省--show--
baba--show--
执行了print静态方法
山西省
OK
执行了study实例方法
执行了study实例方法
--------
OK
执行了print静态方法
山西省
OK
--------
 

发布了45 篇原创文章 · 获赞 8 · 访问量 5852

猜你喜欢

转载自blog.csdn.net/wenyunick/article/details/104267040