在java中使用static时需要注意哪些问题

在java中使用static时需要注意哪些问题?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

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

在java中使用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”);
}
}

内容扩展:

深度总结

引用一位网友的话,说的非常好,如果别人问你static的作用;如果你说静态修饰 类的属性 和 类的方法 别人认为你是合格的;如果是说 可以构成 静态代码块,那别人认为你还可以; 如果你说可以构成 静态内部类, 那别人认为你不错;如果你说了静态导包,那别人认为你很OK;

那我们就先在这几方面一一对static进行总结;然后说一些模糊的地方,以及一些面试中容易问道的地方;

static方法

static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。

看完上述内容,你们掌握在java中使用static时需要注意哪些问题的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注恰卡编程网行业资讯频道,感谢各位的阅读!

发布于 2021-03-02 23:49:29
收藏
分享
海报
0 条评论
168
上一篇:Runnable接口无start()方法如何解决 下一篇:怎么在java中使用HashMap实现一个斗地主游戏
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码