java--成员变量和局部变量-创新互联

变量的分类 Java 语言中若变量按声明的位置分类,

可以分为:成员变量、局部变量,
而成员变量又分为:实例变量、静态变量。
实例变量是指不使用static修饰的变量,
静态变量是指使用static修饰的变量。
局部变量包括:方法内声明的变量、方法的形参、构造器的形参、代码块内声明的变量。
在这里插入图片描述

公司主营业务:成都网站设计、网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出梁平免费做网站回馈大家。成员变量

成员变量:如果一个变量定义的位置在方法的外部,在类的内部,此时该变量被称为成员变量。成员变量不是必须要赋值,成员变量是有默认值的,具体的值是根据数据类型来定。

有默认值
byte/short/int/long : 0
float/double : 0.0
char : 0 或 ‘\u0000’
boolean : false
引用类型: null

实例变量

实例变量是指不使用static修饰的变量,
类中的实例变量在用该类创建对象的时候才会被分配内存空间。

 //实例变量的赋值
       public class Test01 {int m = 10,n;//A
    //n=200; 成员变量 在声明的同时赋值或者在方法内赋值
    void f(){if(m == n)
            n=+m;    //C
        else
            n = n - m; //D
    }
}
实例变量的调用
public class Test1 {int  a=10;	//成员变量 示例变量
	public static void main(String[] args) {Test1 test1 = new Test1();
		int a = test1.a; //局部变量a
		System.out.println(a);
		test1.sys();
}
	public void sys() {//示例方法
		System.out.println(a);
	}
}
//类Test2
public class Test2  {public static void main(String[] args) {// TODO 自动生成的方法存根
		Test1 test1=new Test1();
		int a=test1.a;
		System.out.println(a);
	}
}
静态变量

java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。静态变量是成员变量的一种。
1.静态变量在类中,但在方法、构造方法、语句块之外;
2.系统自动赋初值,此外,静态变量还可以在静态语句块中初始化);
3.对象. 或 类名. 两种形式调用;
4.存储在方法区的静态方法区;
5. 生命周期是 随类加载而加载,类消失而消失;
6. 无论一个类创建了多少个对象,类只拥有静态变量的一份地址拷贝;
7.为了对类的使用者可见,大多数静态变量声明为public类型;

局部变量

局部变量:如果一个变量的定义的位置是在方法的内部,此时 该变量被称为局部变量。局部变量在使用的前必须要赋值。

不会赋默认值 必须赋初值才能使用

public class   MemberLocal{static String name; //静态变量 由 static修饰 又称全局变量 可以被静态方法使用
    int num=10;//成员变量	又称实例变量   一般使用在其他需要的方法中 使用时需要new一下
	public static void A() {int num=20;  //局部变量 在这个方法内使用
		System.out.println("我是静态变量name 我的值是初始值"+name);
		System.out.println("我是局部变量num 我需要赋值后使用 我的值是"+num);
		name = "被A修改过的name";		
	}	
	public static  void B(int param) {//方法的参数就是局部变量
		//参数在方法调用的时候必然是会被赋值的
		System.out.println("我是局部变量parame 我需要赋值后使用 我的值是"+param);
		System.out.println("我是静态变量name 我的值是"+name);
	}  
    public static void main(String[] args){   int numB = 100;
       A();    
       B(numB);
     }
}
静态变量 成员变量 局部变量对比

在这里插入图片描述

成员变量和局部变量的对比 相同点:
1.声明格式相同
       格式: 数据类型  变量名  =  变量值
  2.变量,必须先声明后使用
  3.变量,都有其作用域
不同点:
1.声明的位置不同:
      成员变量:直接声明在类的内部
      局部变量:方法内声明的变量
                       方法的形参、构造器的形参
                       代码块内声明的变量。
   2.权限修饰符的使用:
               成员变量:可以在声明的类型前,指明权限修饰符。
                       权限修饰符有:private、public、protected、默认
               局部变量:不可以声明权限修饰符    
    3.默认初始化值:
        成员变量:在声明时,如果没有显示赋值。则其有默认初始化值。
                         byte/short/int/long :  0
                         float/double : 0.0
                          char : 0 或 '\u0000'
                         boolean : false
                        引用类型: null
       局部变量:在使用变量前,一定要进行显示初始化。即:局部变量没有初始化值
      对于方法的形参(局部变量的一种)而言,是在调用方法时,给形参赋值。
      4.在内存中加载的位置不同:
          成员变量:声明在堆空间中(永久存在)
          局部变量:声明在栈空间中
注意事项:

1.当成员变量与局部变量名相同时,使用就近原则,只要你能访问到,哪个声明的地方离你近就访问的是哪个,必须访问成员变量时,使用this访问。
2.每个对象都有自己的成员变量,并不是共享一份,而静态变量则是所有对象共享一份。
3.静态变量的访问,一般使用‘类名.变量名’进行访问,也可使用‘对象名.变量名’进行访问,但不推荐,因为静态变量并不属于某个对象,而属于整个类

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前标题:java--成员变量和局部变量-创新互联
本文网址:http://hbruida.cn/article/dijdig.html