全局变量、局部变量
来源:互联网 发布:淘宝图片怎么搜索引擎 编辑:程序博客网 时间:2024/06/15 22:11
前言
全局变量和局部变量!知道了会特别的简单但是就怕不知道啊,不知道就特别难了,还好我知道了。嘻嘻!
内容
定义:
局部变量:在程序中只在特定过程或函数中可以访问的变量。局部变量是相对于全局变量而言的。
全局变量:既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。一个局部变量在被其它对象引用时,会是一个空值。但全局变量却不会出现这种情况。
解决在敲修改密码窗体时遇到的全局变量和局部变量问题!
先说明一下:修改密码,先是把两个相同的密码从U层传给外观在传给B层再再再传最后到数据库中把原来密码换成新的密码。改成功了没有呢?给个反映的,就把“成功!”的字符串再传回来,再显示“成功!”。在传回来,传到B层出问题了。一言不合上代码!
这是修改密码的B层错误代码:
public class ModifyPW { Factory.Factory factory = new Factory.Factory(); string str1; public string Modify(string xinPW, string quePW) { if (xinPW == quePW) { IDAL.ImodifyDAL modify = factory.modify(); string str1 = modify.modifyPW(quePW); } else { str1 = "两次密码不一致!"; } return str1; } }
看哪出问题了,仔细看几个str1字符串变量的区别。
string str1 = modify.modifyPW(quePW); 当单步调试到这,调用D层的函数返回来的“成功”赋值给str1,此时str1是“成功”再走一步return str1;此时的str1是NULL,这是为啥啊?这两个str1看是是一个其实一个是局部变量一个事全局变量,第一个str1在if里边定义的对于这个函数来说是局部的,所以出了if就不能用了,而全局能用。返回的是全局的str1就当然是NULL了。
B层正确的代码:
public class ModifyPW { Factory.Factory factory = new Factory.Factory(); string str1; public string Modify(string xinPW, string quePW) { if (xinPW == quePW) { IDAL.ImodifyDAL modify = factory.modify(); str1 = modify.modifyPW(quePW); } else { str1 = "两次密码不一致!"; } return str1; } }
这样对于这个函数来说都是全局变量了,返回的是“成功”。
总结
变量分为局部与全局,局部变量又可称之为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。
- 局部变量,全局变量,静态全局变量
- 全局变量?局部变量?
- 全局变量与局部变量
- 局部变量与全局变量
- 全局变量、局部变量、extern
- 全局变量与局部变量
- 全局变量与局部变量
- 局部变量和全局变量
- c++ 全局变量 局部变量
- 全局变量,局部变量
- 局部变量和全局变量
- 全局变量和局部变量
- 全局变量 vs 局部变量
- 局部变量和全局变量
- 全局变量和局部变量
- C# 局部变量,全局变量
- 局部变量和全局变量
- 全局变量和局部变量
- Android属性动画(Animator)
- 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的问题
- xml介绍与解析
- python中如何避免中文是乱码
- 设计模式——单例模式
- 全局变量、局部变量
- HDU 2034 人见人爱A-B
- Maven动态切换配置文件
- PHP文件上传
- android语言国际化
- 机器学习(七):集成方法(2)Boost
- JDK8新特性—Lambda简洁代码以及其他
- 1089. Insert or Merge (25)
- JavaScript内置对象--单体内置对象(Global、Math)详解