java基础 变量和静态的总结

来源:互联网 发布:一落叶而知天下秋素材 编辑:程序博客网 时间:2024/05/17 13:45

首先对java中的变量进行分类:

java中的变量主要分为成员变量和局部变量。

成员变量:在类中定义,用来描述对象将要有什么。(成员变量有系统默认的初始值)(作用域为整个类内部)

实例变量 (无static修饰)

类变量 (以static修饰)

局部变量:在方法中定义,在方法中临时保存数据。(局部变量必须自己设置初始值)(作用仅限于定义它的方法内)

形参

方法局部变量 (注:任何方法的变量必然为局部变量,不可用static修饰,static修饰的变量必然在类中方法外)

代码块局部变量


定义一个变量前需要思考:

如果一个变量或方法不依赖与类的某个实例,就应该定义为静态变量或静态方法。

例:定义一个circle的radius或者area,都必须以来一个实例的circle   故他们只能定义为实例变量

<pre name="code" class="java">public class Test1{//int times = 0;此行的times为类中的成员变量,在下面静态的主方法中所有的times必须用本类的对象T1来调用。如想直接调用需要用static修饰timespublic static void main(String[] args){Count myCount = new Count();int times = 0;//定义在静态主方法下的局部变量 不可用static修饰 不做任何修饰//Test1 T1 = new Test1();   //T1.times = 0;for(int i = 0;i<100;i++)increment(myCount,times);//主方法中调用的increment方法,如increment方法为非静态方法,此处需要用本类的对象T1来调用System.out.println("count is "+myCount.count);System.out.println("times is "+times);}public static void increment(Count c,int times){//主方法为静态方法  在主方法中直接调用,increment方法必须也是静态方法c.count++;times++;}}class Count{public int count;public Count(int c){count = c;}public Count(){count = 1;}}

静态成员(属性和方法)都是类特有的,是为了各个对象共享数据的。

从java运行加载顺序的角度看,静态是随着类的加载而加载。

静态相当于解压缩文件,静态可以直接使用。非静态相当于压缩文件。非静态需要解压后(即调用对象)才能使用。


从面向对象的思想现实意义考虑,无论是static修饰的方法还是变量,首先,我们之所以用Static修饰有一个很直接的目的就是访问方便,当然,方法和变量各有它们的作用,方法的作用是告诉我们怎样去做具体的事,所以它里面的变量已经没有那么重要了,因为我们的方法具有普适性,对于它里面的变量的调用好像没有太大的价值,变量只不过是个形式,值都是从外面传进方法来的。所以方法体里面的变量一般不加任何修饰符。



0 0
原创粉丝点击