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.两类变量同名时,局部变量具有更高的优先级;

方法会优先使用成员变量的值

最新文章

  1. Li-Fi,LED光无线局域网
  2. Python基本数据类型之list
  3. 使用iScroll时,input等不能输入内容的解决方法(share)
  4. CDH中,执行HIVE脚本表联查权限问题。。
  5. Jquery easyui datagrid 导出Excel
  6. 103. Binary Tree Zigzag Level Order Traversal
  7. WIN8+VS2013编写发布WCF之三(调用)
  8. linux下修改history命令保存条数
  9. Oracle锁表(转载)
  10. Nginx 的 RTMP 模块的在线统计功能 stat 在 multi-worker 模式下存在 Bug
  11. Android之界面刷新(invalidate和postInvalidate使用)
  12. jquery 缓冲加载图片插件 jquery.lazyload
  13. idea unknow facet type web 解决方案
  14. VMware的CentOS无法上网的解决方法
  15. 我的EJB学习历程
  16. 实例:SSh结合Easyui实现Datagrid的分页显示
  17. html学习之多行文本
  18. Android 插件化和热修复知识梳理
  19. vuejs-指令详解
  20. maomao的fft板子

热门文章

  1. C#中的多线程 - 并行编程 z
  2. 运维不仅仅是懂Linux就行,还需要知道这些……
  3. awk的简单使用
  4. UML用例图间关系说明
  5. 分享一个SqliteHelper类
  6. MySQL语法三:数据控制语句
  7. Ubuntu14.04安装PowerDNS踩坑实录
  8. Linux 进程与信号的概念和操作 linux process and signals
  9. 华为交换机SSH配置
  10. js 实现分享功能