자바 제어자 2

jaegeunsong97·2023년 1월 14일
0
post-thumbnail

2023_1_14_TIL

final 변수

  • 필드, 지역변수, 메소드, 클래스 앞에 위치
  • 한번 대입된 값이 최종 값 -> 절대 수정 못함
  • final 변수는 언제 많이 사용
    • 이벤트 처리할 때 메모리에서는 사라진 그 변수를 나중에 사용해야 할 떄가 있다
    • 사라지지 않는 영역인 상수 영역에 복사해 놓는 것
class A1 {
    int a = 3;
    final int b = 5;
    A1() {

    }
}
class A2 {
    int a;
    final int b;
    A2() {
        a = 3;
        b = 5;
    }
}
class A3 {
    int a = 3;
    final int b = 5;
    A3() {
        a = 5;
    }
}
class B {
    void bcd() {
        int a = 3;
        final int b = 5;
        a = 7;
    }
}

public class FinalModifier_1 {
    public static void main(String[] args) {
        A1 a1 = new A1();
        A2 a2 = new A2();

        a1.a = 7;
        a2.a = 7;
    }
}

final메소드와 final클래스

  • final메소드 -> 오버라이딩 절대X
  • final클래스 -> 상속 X
class A {
    void abc(){}
    final void bcd(){}
}
class B extends A {
    void abc(){}
}
final class C {}

public class FinalModifier_2 {
    public static void main(String[] args) {
    }
}

abstract 제어자의 장점

  • 추상메소드 -> 미완성 메소드
class Animal {
    void cry(){}
}
class Cat extends Animal {
    void cry() {
        System.out.println("야옹");
    }
}
class Dog extends Animal {
    void cry() {
        System.out.println("멍멍");
    }
}
public class AbstractModifier_1 {
    public static void main(String[] args) {
        Animal animal1 = new Cat();
        Animal animal2 = new Dog();

        animal1.cry();
        animal2.cry();
    }
}
  • 추상메소드를 1개 이상 포함하고 있는 클래스는 반드시 추상 클래스로 정의
abstract class Animal {
    abstract void cry();
}
class Cat extends Animal {
    @Override
    void cry() {
        System.out.println("야옹");
    }
}
class Dog extends Animal {
    @Override
    void cry() {
        System.out.println("멍멍");
    }
}
public class AbstractModifier_2 {
    public static void main(String[] args) {
        Animal animal1 = new Cat();
        Animal animal2 = new Dog();

        animal1.cry();
        animal2.cry();
    }
}
  • abstract제어자의 장점
    • 오타발생을 막아줌 -> 순기능

참조

profile
현재 블로그 : https://jasonsong97.tistory.com/

0개의 댓글