Java 成员变量和局部变量

来源:互联网 发布:获取所有股票信息 js 编辑:程序博客网 时间:2024/04/29 22:46

面向对象主要用到的两种类型的变量: 成员变量和局部变量。
一、成员变量

在类中定义,用来描述对象将会有什么

二、局部变量

在类的方法中定义,在方法中用于临时保存数据

三、成员变量和局部变量的区别

1、作用域不同
局部变量的作用域仅局限于定义它的方法(即方法的开始和方法的结束)
成员变量的作用域在它整个类的内部是可见的(即该类内部的方法都是可见的)

2、初始值不同
在Java程序中,系统会给成员变量一个初始值,不会给局部变量初始值。这是因为成员变量存放在内存中的堆区,局部变量存放于内存中的栈区。当我们在当前方法中定义个局部变量的时候,必须手动给成员变量一个初始值,否则会编译不通过。

提示如下信息:
localMemorySize 这个局部变量没被赋初始值

The local variable **localMemorySize** may not have been initialized

3、就近原则
当局部变量和成员变量同名时,局部变量具有更高的优先级。

4、关于重复声明

在同一个方法中,不允许有同名的局部变量
在不同方法中,可以有同名的局部变量

四、举例
定义一个类,名字Telephone

public class Telephone {//定义一个成员变量int memorySize;  // 内存大小double screenSize = 4.7;  //屏幕大小public  void sendMessage(){//定义一个局部变量int localMemorySize = 0;System.out.println("localMemorySize:"+localMemorySize);System.out.println("memorySize:"+memorySize);//就近原则double screenSize =  5.5;System.out.println("screenSize:"+screenSize);}public void Call(){//定义一个局部变量int localMemorySize = 0;        System.out.println("localMemorySize:"+localMemorySize);System.out.println("memorySize:"+memorySize);}}

在入口函数中调用:

Telephone iphone = new Telephone();iphone.sendMessage();

输出结果:

localMemorySize:0memorySize:0screenSize:5.5

demo 地址: http://download.csdn.net/download/qq_18505715/9823049

0 0
原创粉丝点击