[code="java"]public class A {
private int i=0;
public void print(){
/*为什么此处只能加修饰符final?其他的都不能?*/ int i = 1;
System.out.println("Printed from CLASS A");
}
}[/code]
public\private\protected等是访问修饰符,在方法体内定义的是局部变量,不存在访问权限一说,所以不能使用滴~ :)
入门基础 Java参数传递方式
1、对于原始数据类型,也就是int、 long、char之类的类型,是传值的,如果你在方法中修改了值,方法调用结束后,那个变量的值没用改变。
2、对于对象类型,也就是Object的子类,如果你在方法中修改了它的成员的值,那个修改是生效的,方法调用结束后,它的成员是新的值,但是如果你把它指向一个其它的对象( 70-305 ),方法调用结束后,原来对它的引用并没用指向新的对象。
代码如下:
public class Tester {
public static void main(String[] args) {
int primitive = 2;
changePrimitive(primitive);
//primitive的值依然是2
MyClass myClass = new MyClass();
changeObject(myClass);
//myClass仍然指向的是执行changeObject之前的那个对象
//但是myClass.i等于3了
}
public static void changePrimitive(int primitive) {
primitive = 3;
}
public static void changeObject(MyClass myClass) {
myClass.i = 3;
myClass = new MyClass();
}
}
class MyClass {
int i;
}
发错地方了。。。。