java的变量类型

一.首先我们应该知道类体是由哪几部分构成:

  1.   类是由定义的变量和定义的方法(一个类可以有多个方法)构成;

        java语言支持的变量有两种,一种是成员变量(成员变量也就是我们所说的全局变量),一种是局部变量;

        成员变量:在类里面定义的变量,在整个类里都有效,都可以被访问;

        局部变量:在类的方法、构造方法或者语句块里面定义的变量,只在所属的区域内有效;

  2.局部变量和成员变量的区别是什么?

     成员变量:1.它定义在类里面,在整个类中都可以被访问;

                         2.它随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中;

                         3.它有默认的初始化值;

     局部变量:1.它只能定义在局部范围内,只在所属的区域内有效;

                         2.它在方法、构造方法或者语句被执行的时候创建,在它们执行结束后,局部变量将要被销毁;

                         3.它不能被访问修饰符来修饰;

                         4.它存在于栈内存中;

                         5.它没有默认的初始化值;

    注意:如果定义的局部变量的名称和成员变量的名称相同,要想在定义局部变量的方法中使用成员变量,则必须使用this关键字;代码如下:

package test;


public class Test
{
	//源文件中只能有一个类是public类,并且源文件的名字必须与这个类的名字完全相同,如  
    //果没有public类,那么源文件的名字只要和某个类的名字相同就可以了。
	
	public static void main(String[] args)
	{
		 People myPeople = new People();  
	     myPeople.speak(); 
	}
}


class People {  
    String name = "类体重定义的name";         //类中的成员变量并赋值  
      
    public void speak() {  
        String name = "类体方法中定义的name";       //在方法speak中定义和成员变量名字相同的局部变量并赋值  
        System.out.println(name);  
        System.out.println(this.name);      //通过this来访问类中的成员变量  
          
    }  
}  
运行结果:

类体方法中定义的name
类体重定义的name


二、成员变量的分类

        1.成员变量又可以分成两类,一类是实例变量,一类是类变量(也就是我们常说的静态变量);实例变量是独立于方法之外的,没有static去修饰,类变量是也独立于方法之外的,但是要用static去修饰;

代码实例:

public class Variable{
    static int allClicks=0;    // 类变量
 
    String str="hello world";  // 实例变量
 
    public void method(){
 
        int i =0;  // 局部变量
 
    }
}
   类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例所共享。静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。而实例变量取决于类的的实例对象,每创建一个实例对象,java虚拟机就为实例变量分配一个内存,实例变量位于堆区中,其生命周期取决于实例对象的生命周期;

   实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;而静态变量的默认值和实例变量大的默认值相似,数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。

  2.静态变量和实例变量的区别是什么??

     在语法定义上的区别:静态变量前面要加static,而实例变量前面不需要加static;

    程序运行上的区别:实例变量属于某个对象是的属性,必须创建了实例对象,其中的实例变量才会被分配内存空间,这样才能使用这个实例变量;静态变量不属于对象的属性,而是属于类的属性,所以也称作类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就被分配了内存空间,静态变量就能被使用了。

©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页