> Java > java지도 시간 > Java에서 final 키워드를 사용하는 방법

Java에서 final 키워드를 사용하는 방법

WBOY
풀어 주다: 2023-04-26 19:37:05
앞으로
1353명이 탐색했습니다.

1.

final: 최종

2. 함수

final은 클래스, 메소드, 변수를 수정하는 데 사용할 수 있습니다.

1. 수정 - 클래스

final은 클래스를 수정하는 데 사용됩니다. 클래스는 다른 클래스에서 상속될 수 없으므로 보안이 향상되고 프로그램의 가독성이 향상됩니다.

예: 문자열 클래스, 시스템 클래스, StringBuffer 클래스...

코드 데모:

최종 클래스 A{
}
클래스 B 확장 A{ //오류, 상속될 수 없습니다.
}

2. 수정 메서드

final은 메서드를 수정하는 데 사용됩니다. 즉, 이 메서드는 하위 클래스로 재정의될 수 없음을 나타냅니다.

예를 들어 Object 클래스의 getClass();)를 상수라고 합니다. 이름은 대문자로 표시되며 한 번만 지정할 수 있습니다. Object类中getClass();

代码演示:

class A {
   public final void print() {
     System.out.println("A");
   } 
}
class B extends A {
    public void print() { 
    // 错误,不能被重写。
    } 
}
로그인 후 복사

3. 修饰-变量

final 修饰的变量(成员变量或局部变量)称为常量。名称大写,且只能被赋值一次。

static final 用来修饰属性:全局常量。

代码演示:

class A {
   private final String INFO = "嘻嘻"; //声明常量
     public void print() {     
     //INFO = "哈哈";
     //The final field A.INFO cannot be assigned
     } 
}
로그인 후 복사
3.1 修饰-成员变量(属性)

final 标记的成员变量必须在声明(显式初始化)时或在 每个构造器中或代码块中显式赋值,然后才能使用。

如:final double MY_PI = 3.14;

static final은 속성(전역 상수)을 수정하는 데 사용됩니다.
코드 데모:

//题目一:
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的构造器
*/
로그인 후 복사
3.1 수정 - 멤버 변수(속성)

최종으로 표시된 멤버 변수는 선언 시(명시적 초기화) 또는 각 생성자 또는 코드 블록에서 명시적으로 할당되어야 사용할 수 있습니다. 🎜🎜예: final double MY_PI = 3.14;🎜🎜3.2 수정 - 지역 변수🎜🎜final을 사용하여 지역 변수를 수정하는 경우 이 형식 매개변수가 상수임을 나타냅니다. 이 메서드를 호출할 때 실제 매개변수를 상수 매개변수에 할당합니다. 이 형식 매개변수는 일단 할당되면 메서드 본문 내에서만 사용할 수 있으며 재할당할 수 없습니다. 🎜🎜3. 고전적인 질문🎜rrreee

위 내용은 Java에서 final 키워드를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿