1. class Car
  2. {
  3. String color;
  4. int number;
  5.  
  6. void run()
  7. {
  8. System.out.println(color+"::"+number);
  9. }
  10. }
  11.  
  12. class CarDemo
  13. {
  14. public static void main(String[] agrs)
  15. {
  16. Car c = new Car();//c是类类型的变量。
  17. //c.color = "blue";
  18. //c.number = 4;
  19. c.run();
  20. }
  21. }
  22.  
  23. /*
  24. 类与对象的关系:
  25. 类:对事物的描述。需要体现属性和行为。
  26. 对象:该类事物创建的示例(实体),通过该对象调用具有的属性和行为。
  27.  
  28. 成员变量和局部变量的区别:
  29. 区别一:定义的位置不同。
  30. (1)成员变量定义在类中。
  31. (2)局部变量定义在方法中。
  32.  
  33. 区别二:在内存中的位置不同。
  34. (1)成员变量存储在堆内存的对象中。
  35. (2)局部变量存储在栈内存的方法中。
  36.  
  37. 区别三:声明周期不同:
  38. (1)成员变量随着对象的出现而出现,随着对象的消失而消失。
  39.  
  40. 对区别三第(1)条的解释说明:
  41. class Car
  42. {
  43. //事物的属性:
  44. String color;
  45. int number;
  46.  
  47. //事物行为:
  48. void run()
  49. {
  50. System.out.println(color+"::"+number);
  51. }
  52.  
  53. /*
  54. 说明:这个run方法运行的时候,调用的不是Car这个类里面定义的那个
  55. color和number,而是内存中的堆内存中的对象的color和number。
  56. */
  57. }
  58. class CarDemo
  59. {
  60. public static void main(String[] agrs)
  61. {
  62. Car c = new Car();
  63. c.color = "red";
  64. c.number = ;
  65. c.run();
  66. }
  67. }
  68. ()局部变量是随着方法的运行而出现,随着方法的弹栈而消失。
  69.  
  70. 区别四:初始化不同:
  71. ()成员变量因为在堆内存中,所以有默认的初始化值。
  72. ()局部变量没有默认初始化值,必须初始化后才可以使用。
  73. /*
  74. 有一个问题是:Java为什么不把局部变量也初始化呢?
  75. 原因是一旦Java把局部变量也初始化了,此时局部变量
  76. 就在内存中占据空间了。Java的机制是什么时候用到了
  77. 局部变量,什么时候再在内存中为局部变量开辟空间。
  78.  
  79. //如果写成如下:则当run方法进栈后,会在内存中为局部变量
  80. //x开辟空间。
  81. void show()
  82. {
  83. int x = 4;
  84. }
  85.  
  86. //如果写成如下:则当run方法进栈后,不会在内存中为局部变量
  87. //x开辟空间。
  88. void show()
  89. {
  90. int x;
  91. }
  92. */
  93.  
  94. */

《java中局部变量和成员变量的区别》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. phalcon: 视图集成(内嵌模板)

    当一个网站把不同的模板分割成:头部,中间区域,底部时,我们就需要在不同的[中间区域]页面引入相同的头部跟底部.引入有2种方法, 一种是:在controller中调用: $this->view-& ...

  2. 十问 Linux 虚拟内存管理 (glibc) (二)

    版权声明:本文由陈福荣原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/184 来源:腾云阁 https://www.qclo ...

  3. 【转】 STL中的set容器的一点总结

    1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构 ...

  4. 队列中使用Database Driver

    队列允许你将一个耗时的任务进行延迟处理. 首先要在.evn文件中配置 QUEUE_DRIVER=database 要使用 database 这个队列驱动的话,则需要创建一个数据表来记住任务,使用命令: ...

  5. Eclipse 编译错误 Access restriction: The type 'JPEGCodec' is not API (restriction on required library 'C:\Program Files\Java\jre7\lib\rt.jar')

    解决方案:          Project -> Properties ->Java Build Path -> libraries,         先 remove 掉 JRE ...

  6. ERROR 1130: Host 'root@localhost' is not allowed to connect to MySQL server

    连接mysql时遇到的错误. 原因:该用户没有权限连接访问mysql数据库 解决方法:网站上搜了好多,试了都没有用.最终在登陆的信息页面用root用户登陆时不输入root密码即可.

  7. BluetoothAdapter.LeScanCallback 参考文档

      BluetoothAdapter.LeScanCallback 参考文档   [翻译自: android开发文档] Class Overview:回调接口被用于传输LE扫描后的结果; 详情参看: ...

  8. hadoop分布式的环境搭建

    版本: 使用hadoop1.1.2    JDK为java7 1.下载hadoop 2.配置hadoop文件 3测试 1.下载hadoop: 1.1 在https://archive.apache.o ...

  9. hdu------(4300)Clairewd’s message(kmp)

    Clairewd’s message Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  10. MATLAB 生成数据保存至文件

    % load pyrim % NumTrain = 50; % load machine %NumTrain = 150; % load housing % NumTrain = 300; % loa ...