immutable
- The final keyword can be used to make a class, method or variable immutable.
- Final variable: Once a final variable is assigned a value, it becomes a constant and can no longer be changed.
- Final method: Once a method is made final, it cannot be overridden.
- Final Class: Once a class is made final, it cannot be extended.
package JavaSE.immutable;
import java.sql.Array;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* @Author: eve
* @Date: 2025-01-31 12:44
*/
public final class Student {
private final String name;
private final List<String> courses;
public Student(String name, List<String> courses){
this.name = name;
this.courses = new ArrayList<>();
Iterator var3 = courses.iterator();
while(var3.hasNext()){
String course = (String) var3.next();
this.courses.add(course);
}
}
public List<String> getCourses(){
List<String> temp = new ArrayList<>();
Iterator var2 = this.courses.iterator();
while(var2.hasNext()){
String c = (String) var2.next();
temp.add(c);
}
return new ArrayList<>(this.courses);
}
public String toString(){
return "Student{name='" + this.name + "', courses=" + this.courses + "}";
}
public static void main(String[] args){
List<String> courses = new ArrayList<>();
Student s1 = new Student("Mark", courses);
System.out.println(s1);
List<String> existCourses = s1.getCourses();
existCourses.add("Hibernate");
existCourses.add("Maven");
System.out.println(s1);
System.out.println(s1.getCourses());
System.out.println(existCourses);
}
}