Daily coding

Java Basic : day 9 - Final 본문

Language/Java_basic

Java Basic : day 9 - Final

sunnnkim 2019. 11. 29. 18:03

Final

class MyClass{ 
          private int number; // member 변수 
          public static int stNumber; // static 변수 


          public void method() { 
                    int num =0; // local variable 지역변수 
                    num ++; 
                    this.number++; 
                    MyClass.stNumber++; 

                    System.out.println("지역변수 = "+ num); 
                    System.out.println("멤버변수 = "+ number); 
                    // 멤버변수  
                    System.out.println("스태틱 변수 = "+ stNumber); 

          } 
} 


// 상속에서의 final : 마지막 상속받은 객체가 된다. 
final class YouClass extends MyClass { 

 

          * final 상수

          // 참고 : c언어 : define / c++ : const  


          final int NUMBER = 3; 
          // final : 한번 정의된 후에는 값을 바꿀 수 없음 
          // final 변수는 대문자로 선언한다 (가독성을 위한 규칙) 


          // final 메소드 : 오버라이딩 막아두는 키워드  
          final public void fianlMethod() { 

          } 

} 

// 메인메소드
public class Final {
    public static void main(String[] args) {

          MyClass cls = new MyClass();
          cls.method();
          cls.method();
          cls.method();

          MyClass cls1 = new MyClass();
          cls1.method();
          cls1.method();
          cls1.method();

 


          // 멤버변수는 새로운 인스턴스가 생성되면 0부터 다시 시작하지만
          // Static 변수는 새로운 인스턴스가 생겨도 
          // 전체 호출된 횟수만큼 연산처리된 값이 들어간다.

 


         



          // MyClass mcls = new YouClass();
          // MyClass가 최상위의 부모클래스 일 때
          // 위와 같은 의미의 코드는 아래 코드
          Object mcls = new YouClass();

          MyClass my = (MyClass)mcls;
          YouClass yo = (YouClass)my;

          YouClass ycl  = new YouClass();
          // MyClass my = (MyClass)ycl;        <-- 불가능한 코드 



         }
}