java中static的用法及注意点

网友投稿 251 2022-11-01


java中static的用法及注意点

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

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

packhttp://age com.jk.ref;

class People{

String name;

private static String country="中国";

public People(String name){

this.name=name;

}

public void tell(){

System.out.println("name:"+name+" "+"country:"+country);

}

/**

* @return the country

*/

public static String getCountry() {

return country;

}

/**

* @param country the country to set

*/

public static void setCountry(String country) {

People.country = country;

}

}

public class StaticDemo01 {

public static void main(String[] args) {

// TODO Auto-generated method stub

People.setCountry("shanghai");

People ps1=new People("zhangsan");

//People.country="上海";

ps1.tell();

People ps2=new People("lisi");

// ps2.country="上海";

ps2.tell(zPCVHNiwJ);

People ps3=new People("wangwu");

// ps3.country="上海";

ps3.tell();

}

}

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

public class TestMain {

public static void main(String[] args) {

Super sup = new Sub(); //封装(向上造型)

sup.m1(); //父类引用无法调子类未重写方法,输出mi in Super

sup.m2();//调用子类方法m2,继承先构建父类方法,方法名相同覆盖(重写)方法,输出m2 in Sub

Sub sub = (Sub)sup; //拆箱(向下造型)

subzPCVHNiwJ.m1(); //调用子类静态方法m1,先构建父类方法,方法名相同方法名相同遮蔽方法,输出m2 in Sub

sub.m2();//调用子类方法m2,继承先构建父类方法,方法名相同覆盖(重写)方法,输出m2 in Sub

}

}

class Super{ //父类

public static void m1() { //父类静态方法

System.out.println(“m1 in Super”);

}

public void m2() { //父类方法

System.out.println(“m2 in Super”);

}

}

class Sub extends Super{ //子类

public static void m1() { //子类静态方法

System.out.println(“m1 in Sub”);

}

public void m2() { //子类方法

System.out.println(“m2 in Sub”);

}

}

内容扩展:

深度总结

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

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

static方法

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:UVA 1025 A Spy in the Metro——dp
下一篇:HDU 2665 Kth number——主席树
相关文章

 发表评论

暂时没有评论,来抢沙发吧~