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
--------

本文深入探讨Java中静态(static)与实例方法的区别与联系,通过具体代码示例,讲解了如何定义和调用静态方法及实例方法,以及它们访问属性的规则。展示了静态方法与实例方法在不同情况下的应用,帮助读者理解Java类的特性。
2057

被折叠的 条评论
为什么被折叠?



