final: 최종
final은 클래스, 메소드, 변수를 수정하는 데 사용할 수 있습니다.
final은 클래스를 수정하는 데 사용됩니다. 클래스는 다른 클래스에서 상속될 수 없으므로 보안이 향상되고 프로그램의 가독성이 향상됩니다.
예: 문자열 클래스, 시스템 클래스, StringBuffer 클래스...
코드 데모:
최종 클래스 A{
}
클래스 B 확장 A{ //오류, 상속될 수 없습니다.
}
final은 메서드를 수정하는 데 사용됩니다. 즉, 이 메서드는 하위 클래스로 재정의될 수 없음을 나타냅니다.
예를 들어 Object
클래스의 getClass();
)를 상수라고 합니다. 이름은 대문자로 표시되며 한 번만 지정할 수 있습니다. Object
类中getClass();
代码演示:
class A { public final void print() { System.out.println("A"); } } class B extends A { public void print() { // 错误,不能被重写。 } }
final 修饰的变量(成员变量或局部变量)称为常量。名称大写,且只能被赋值一次。
static final 用来修饰属性:全局常量。
代码演示:
class A { private final String INFO = "嘻嘻"; //声明常量 public void print() { //INFO = "哈哈"; //The final field A.INFO cannot be assigned } }
final 标记的成员变量必须在声明(显式初始化)时或在 每个构造器中或代码块中显式赋值,然后才能使用。
如:final double MY_PI = 3.14;
//题目一: public class Test1 { public int addOne(final int x) { // return ++x; //Cannot assign a value to final variable 'x' return x + 1; } } //题目二: public class Something { public static void main(String[] args) { Other o = new Other(); new Something().addOne(o); } public void addOne(final Other o) { // o = new Other(); o.i++; } } class Other { public int i; } //题目三: class Root{ static{ System.out.println("Root的静态初始化块"); } { System.out.println("Root的普通初始化块"); } public Root(){ super(); System.out.println("Root的无参数的构造器"); } } class Mid extends Root{ static{ System.out.println("Mid的静态初始化块"); } { System.out.println("Mid的普通初始化块"); } public Mid(){ super(); System.out.println("Mid的无参数的构造器"); } public Mid(String msg){ //通过this调用同一类中重载的构造器 this(); System.out.println("Mid的带参数构造器,其参数值:" + msg); } } class Leaf extends Mid{ static{ System.out.println("Leaf的静态初始化块"); } { System.out.println("Leaf的普通初始化块"); } public Leaf(){ //通过super调用父类中有一个字符串参数的构造器 super("小老师ir"); System.out.println("Leaf的构造器"); } } public class LeafTest{ public static void main(String[] args){ new Leaf(); System.out.println(); new Leaf(); } } /*output: Root的静态初始化块 Mid的静态初始化块 Leaf的静态初始化块 Root的普通初始化块 Root的无参数的构造器 Mid的普通初始化块 Mid的无参数的构造器 Mid的带参数构造器,其参数值:小老师ir Leaf的普通初始化块 Leaf的构造器 Root的普通初始化块 Root的无参数的构造器 Mid的普通初始化块 Mid的无参数的构造器 Mid的带参数构造器,其参数值:小老师ir Leaf的普通初始化块 Leaf的构造器 */
final double MY_PI = 3.14;
🎜🎜3.2 수정 - 지역 변수🎜🎜final을 사용하여 지역 변수를 수정하는 경우 이 형식 매개변수가 상수임을 나타냅니다. 이 메서드를 호출할 때 실제 매개변수를 상수 매개변수에 할당합니다. 이 형식 매개변수는 일단 할당되면 메서드 본문 내에서만 사용할 수 있으며 재할당할 수 없습니다. 🎜🎜3. 고전적인 질문🎜rrreee위 내용은 Java에서 final 키워드를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!