首页 > 代码库 > 对Java中变量作用域理解
对Java中变量作用域理解
昨天写一个java小程序测试与oracle数据库的连接,小程序如下:
package com.test; import java.sql.*; public class procedure { public static void main(String[] args) { try { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection ct=DriverManager.getConnection("jdbc:oracle:thin:@10.8.2.73:1521:orcl","scott","123456"); CallableStatement cs=ct.prepareCall("{call pro_book(?,?,?)}"); cs.setInt(1, 10); cs.setString(2, "华尔街之狼"); cs.setString(3, "中信出版社"); cs.execute(); cs.close(); ct.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } }
变量cs和ct在try{}之外就无法使用,当时就懵了,首先想到的就是超出作用域了,查过资料之后发现确实是超出作用域了,ct和cs的声明都是在try{}里面进行的,作用局就是在{}之内,把ct和cs的声明放在try{}之外就可以使用了。总结:变量的作用域开始于“{”,结束于“}”。修改之后的代码为:
package com.test; import java.sql.*; public class procedure { public static void main(String[] args) { Connection ct=null; CallableStatement cs=null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); ct=DriverManager.getConnection("jdbc:oracle:thin:@10.8.2.73:1521:orcl","scott","58764899"); cs=ct.prepareCall("{call pro_book(?,?,?)}"); cs.setInt(1, 10); cs.setString(2, "华尔街之狼"); cs.setString(3, "中信出版社"); cs.execute(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally{ try { cs.close(); ct.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
本文出自 “飞鱼技术” 博客,请务必保留此出处http://flyingfish.blog.51cto.com/9580339/1584436
对Java中变量作用域理解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。