java中使用static的注意点

在关键词的使用上,我们已经对static方法有所了解,为了防止在使用时出现一些不必要的错误,了解它的使用范围是每个人都要掌握的。本篇把static的使用注意点分为两个方面,一个是访问的范围,另一个是有关方法调用的注意,下面我们一起来看看完整的static使用注意点吧。

1、使用static方法的时候,只能访问static声明的属性和方法,而非static声明的属性和方法是不能访问的。

packagecom.jk.ref;

classPeople{
Stringname;
privatestaticStringcountry="中国";
publicPeople(Stringname){
this.name=name;
}
publicvoidtell(){
System.out.println("name:"+name+""+"country:"+country);
}
/**
*@returnthecountry
*/
publicstaticStringgetCountry(){
returncountry;
}
/**
*@paramcountrythecountrytoset
*/
publicstaticvoidsetCountry(Stringcountry){
People.country=country;
}
}
publicclassStaticDemo01{

publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
People.setCountry("shanghai");
Peopleps1=newPeople("zhangsan");
//People.country="上海";
ps1.tell();
Peopleps2=newPeople("lisi");
//ps2.country="上海";
ps2.tell();
Peopleps3=newPeople("wangwu");
//ps3.country="上海";
ps3.tell();
}

}

2、父类引用只能调父类和子类重写方法,父子同名方法不会覆盖而是遮蔽。

publicclassTestMain{
publicstaticvoidmain(String[]args){
Supersup=newSub();//封装(向上造型)
sup.m1();//父类引用无法调子类未重写方法,输出miinSuper
sup.m2();//调用子类方法m2,继承先构建父类方法,方法名相同覆盖(重写)方法,输出m2inSub
Subsub=(Sub)sup;//拆箱(向下造型)
sub.m1();//调用子类静态方法m1,先构建父类方法,方法名相同方法名相同遮蔽方法,输出m2inSub
sub.m2();//调用子类方法m2,继承先构建父类方法,方法名相同覆盖(重写)方法,输出m2inSub
}
}
classSuper{//父类
publicstaticvoidm1(){//父类静态方法
System.out.println(“m1inSuper”);
}
publicvoidm2(){//父类方法
System.out.println(“m2inSuper”);
}
}
classSubextendsSuper{//子类
publicstaticvoidm1(){//子类静态方法
System.out.println(“m1inSub”);
}
publicvoidm2(){//子类方法
System.out.println(“m2inSub”);
}
}
原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容