package com.shang.learning;
public class TestFinal {
public static void main(String[] args) {
// MyClass mc = new MyClass();
// StringBuffer sb = new StringBuffer("hello");
// mc.changeValues(sb);
// System.out.println(sb);
MyClassInt mci = new MyClassInt();
int i = 0;
mci.changeValues(i);
System.out.println(i);
}
}
class MyClass{
void changeValues(StringBuffer buffer){
buffer.append("world");
StringBuffer sb = buffer;
}
}
class MyClassInt{
void changeValues(int a){
a++;
}
}
final修饰方法不允许值修改,是有问题的。
基本类型,值传递,把值传输,所以在方法里不管怎么修改外部的值是不会变得
引用类型,值传递,传递的是引用的值,所以内部的修改,会引起外部的变化