- public class J_Test {
- String m_kobe = "1";//这里是类成员变量(全局变量)
- String[] m_king = {"2"};
- public static void main(String[] args) {
- J_Test app = new J_Test();
- app.mb_operate(app.m_kobe, app.m_king);
- System.out.println(app.m_kobe+app.m_king[0]);
- }
- static void mb_operate(String m_kobe, String[] king) {
- // System.out.println(m_kobe);
- m_kobe = new String("3");//这里表示的是局部变量哦!
- // System.out.println(king[0]);
- king[0] = new String("4");//这里表示的是局部变量哦
- }
- }
- /*
- 我的回答:你在mb_operate方法的参数列表中定义了一个和类中属性同名的m_kobe局部变量
- 在这个方法体之中,暂时会隐藏类中的同名属性值,也就是说在mb_operate方法中m_kobe编译是
- 把当作局部变量看待,在程序之中这个局部变量的确是指向了一个新字符串对象,但是这个方法一
- 执行完之后 这个局部变量就会被释放,也就是不存在了 在方法外部这个m_kobe又被当成
- 类的属性值看待 如果你要演示mb_operate方法中的变量是类成员变量的话 可以这样定义:
- //修改mb_operate方法
- public void mb_operate(String m_kobe, String[] king) {
- // System.out.println(m_kobe);
- this.m_kobe = new String("3");
- // System.out.println(king[0]);
- this.king[0] = new String("4");
- }
- */
复制代码 |