欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一个demo

程序员文章站 2022-04-24 10:50:53
...
package demo;

public class Test02 {
	String str = new String("hello");
	char[] ch  = {'a','b'};
	public void change(String str,char[] ch) {
		str = "test ok";
		ch[0] = 'c'; 
	}
	public static void main(String[] args) {
		Test02 te = new Test02();
		te.change(te.str,te.ch);
		System.out.println(te.str);
		System.out.println(te.ch);
	}
}

输出为:

hello

cb

分析:

              在Test02类中有两个类的成员变量(类的属性),上面你的代码明显是想通过对象去访问类的成员变量,并对其进行修改。上面两个类成员变量没有明确写自己的访问权限。因此,str是final不可改变的,ch是(default)--包内可访问 (默认)。

             上面 te.change(te.str,te.ch); 执行的时候,创建了一个新String对象,当change()方法执行完毕,str = "test ok";消失。所以没有影响到类的成员变量str.

           ch为char[ ] 且可以被访问到,可以被修改。