Java中的成員變數和局部變數一:成員變數;二:局部變數;三:成員變數與局部變數的區別; ...
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.兩類變數同名時,局部變數具有更高的優先順序;
方法會優先使用成員變數的值