Java中的成员变量和局部变量
一:成员变量;
成员变量在类中定义,用来描述对象将要有什么
成员变量可以被本类的方法使用,也可以被其他类的方法使用,成员变量的作用域在整个类内部都是可见的
二:局部变量;
在类的方法中定义,在方法中临时保存
只能被当前方法使用,局部变量的作用域仅限于定义它的方法
如:
public class Telphone { float screen; //成员变量 float cpu; //成员变量 float mem; //成员变量 public void call(){ int score;//局部变量 System.out.println("Telphone有打电话的功能"); } public void sendMessage(){ System.out.println("screen:"+screen+"cpu:"+cpu+"mem"+mem+"Telphone有发短信的功能"); } }
三:成员变量与局部变量的区别;
1.作用域不同;
局部变量的作用域仅限于定义它的方法
成员变量的作用域在整个类内部都是可见的
举例如下:
Telphone类代码如下:
package com.test; //1.定义一个类 public class Telphone { float screen; float cpu; float mem; int var;//定义一个成员变量 public void call(){ System.out.println("var"+var);//这里调用var变量 System.out.println("Telphone有打电话的功能"); } public void sendMessage(){ System.out.println("var"+var);//同上 System.out.println("screen:"+screen+"cpu:"+cpu+"mem"+mem+"Telphone有发短信的功能"); } }
InitailTelphone类代码如下:
(关于InitailTelphone类的创建我在笔记14有记录)
package com.test; public class InitailTelphone { public static void main(String[] args) { // TODO Auto-generated method stub Telphone phone = new Telphone(); phone.sendMessage(); //给示例变量赋值 phone.screen=5.0f; phone.cpu=1.4f; phone.mem=.0f; //调用对象的方法 phone.sendMessage(); } }
运行InitailTelphone类的结果:
注:这里说明var变量是可以被call方法和sendmessage方法调用的,由于变量var默认值为0,所以var值为0
2.初始值不同;
Java会给成员变量一个初始值
Java不会给局部变量赋予初始值
且在同一个方法中,不允许有同名局部变量
在不同方法中,可以有同名局部变量
代码举例:
3.两类变量同名时,局部变量具有更高的优先级;
方法会优先使用成员变量的值