前言
首先,在java中,final代表“无法修改”。它可以用来修饰数据、方法和类。
1.当一个变量被设置成final,如果它是基本数据类型,那么表示它的值不可改变,如果是引用数据类型,表示它的引用不可以改变,但是引用指向的对象的内容是可以改变的。
2.所有被final标注的方法都是不能被继承、更改的。
3.如果某个类用final修改,表明该类是最终类,它不希望也不允许其他来继承它。【对于final修饰的类来说,它的成员变量可以为final,也可以为非final。如果定义为final,那么final数据的规则同样适合它。而它的方法则会自动的加上final,因为final类是无法被继承,所以这个是默认的。】
举例说明
public class FinalStringTest {
public static void main(String[] args) {
Person person1 = new Person("张三");
System.out.println(person1);
Person person2 = new Person("李四");
System.out.println(person2);
person2.clo.setCalled("高级衣服");
System.out.println(person2);
}
}
class Person{
public final String name = "ddd";
public final String trueName;
private Random random = new Random();
public final int rand = random.nextInt(50);
public final cloth clo = new cloth("普通衣服");
public Person(String trueName){
this.trueName = trueName;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", trueName='" + trueName + '\'' +
", random=" + random +
", rand=" + rand +
", clo=" + clo.getCalled() +
'}';
}
}
class cloth{
private String called;
public String getCalled() {
return called;
}
public void setCalled(String called) {
this.called = called;
}
public cloth(String called){
this.called = called;
}
}