티스토리 뷰
final
- 값을 변경할 수 없는 것.
ex.)
public [final] int max = 20;
max = 30; (에러)
변수/ 메소드/ 클래스 에 사용가능하다
변수 final - 값을 변경 할 수 없다.
메소드 final - 오버라이딩 일때 사용 불가능
클래스 final - 상속 불가
사용 예시
final class T1 {
	
}
class T2 extends T1 { // T1 이 final이라 상속 불가능
	
}
class T3 {
	final void abc() {
		
	}
	
}
class T4 extends T3 {
//	void abc() // final => 오버라이딩 불가능
}
public class FinalTest {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		final int a = 20;
//		a = 30; // final 변수라 에러가
	}
}
equals
> 비교를 위해 사용하는 키워드
이러한 경우가 있다고 해보면,
Class A{
}
메인 메서드에
A a = new A();
A a1 = new A();
이 때,
a == a1 // false => 객체가 다르니까
a.equals(a1) // false => 무조건 객체 같아야합니다.
그런데 만약에,
A a2 = new A();
A a3 = a2;
이런 경우가 있다고 해보면,
a2 == a3 // true ----> 같은 주소를 바라보고 있게 된다.

예제
public class EqualsTest {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		C c = new C();
		C c1 = new C();
		C c2 = c1;
		if(c == c1) {
			System.out.println("c == c1"); // 출력 안 됨
		}
		if(c.equals(c1)) {
			System.out.println("c.equals(c1)"); // 출력 안 됨.
		}
		if(c1 == c2) {
			System.out.println("c1 == c2");
		}
		
		
		String str = "하이";
		
		if(str == "하이") {
			System.out.println("str == 하이");
		}
		if(str.equals("하이")) {
			System.out.println("str.equals(\"하이\")");
		}
	}
}728x90
    
    
  반응형
    
    
    
  '[개발] - Java > Mega' 카테고리의 다른 글
| Day27-2. 자료구조 도입 (0) | 2023.04.23 | 
|---|---|
| Day27-1. 제네릭 (1) | 2023.04.23 | 
| Day25. 추상화(1) 추상클래스, 추상메서드 (0) | 2023.04.17 | 
| Day24-2. 참조자료형 형변환, 오버라이딩 예제 (0) | 2023.04.17 | 
| Day24. 참조자료형 형변환, 오버라이딩 (0) | 2023.04.17 | 
 
                            Comments
                            
                        
                        
                        
                    
                    
                    
                        
                    
                 
                                                    