JAVA语言学习_02(关于static)

来源:互联网 发布:袁岚峰 知乎 编辑:程序博客网 时间:2024/06/05 18:08

作为一个初学者,最令我好奇的就是static,无论是声明类,还是函数,还是变量基本上都有static。这是我学习C不常见的,所以为了搞懂static的作用,我查阅了先关的资料,比得出下面自己的见解。

用static修饰的有:静态变量,静态方法,静态类。当声明静态之后,当声明对象的时候不产生拷贝,都只是共用。

1.静态变量:我认为静态变量就是象全局变量一样,任何地方都是一样的。看下面的例子:

public class AboutStatic {static class Book{double price;static int num=100;public void addBook(){num++;System.out.println("this book price is:"+price+"and the book's number is:"+num);}}public static void main(String[] args) {Book b1=new Book();b1.price=10;b1.addBook();Book b2=new Book();b2.price=10;b2.addBook();}}
这里输出的结果是:

this book price is:10.0and the book's number is:101this book price is:10.0and the book's number is:102
这里,可以实例化不同的对象,但静态变量还是原来那个,不产生拷贝,是共用的。这和全局变量是很相似的。

2.静态方法:感觉很静态变量很相像,一次声明到处能用,而且不用实例化也能用。看下面的例子:

public class AboutStatic {public static void main(String args[]){Hellow.Say();}public static class Hellow{ public static void Say(){ System.out.println("hellow world"); }}}
结果是:

hellow world
代码中就没用实例化类,但也能使用Hellow类中的Say()方法。但值得我们注意的是如果如果静态方法调用变量的话,这个变量必须也是静态的。

3.静态类:静态的类不就是静态变量和静态方法组成的么。要使用静态方法,必须将类声明成静态的,就像静态方法调用变量,变量必须是静态的样。总之,静态一家亲。值得注意的静态类中不能使用this和super。

总之,“如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。你可以将方法和变量都声明为static。static 成员的最常见的例子是main( ) 。因为在程序开始执行时必须调用main() ,所以它被声明为static”。





原创粉丝点击