ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 메소드 내부 객체 변수(this,super), 생성자 호출 메소드
    JAVA/상속 2020. 10. 11. 00:05

    메소드 내부 객체 변수
        - this : 메소드 안에서 객체를 나타내는 객체 변수, 
                 메소드 안에서 메소드를 호출한 객체의 주소(Hash Code)를 가지고 있다.   
                 사용법 : this.멤버변수  
        - super : 메소드 안에서 상위 클래스 객체를 나타내는 객체 변수
                     사용법 : super.멤버변수

     

    생성자 호출 메소드
        - 생성자 안에서 다른형태의 생성자를 호출 할 수 있다.
        - this() : 현재 클래스의 생성자를 호출.
        - super() : 부모 클래스의 생성자를 호출.
        - 생성자 : new를 이용하여 메모리 할당이 끝난 후 메모리를 초기화하는 역할을 한다.

                     멤버 변수에 초기값을 할당한다.

     

     

    1. this

       - 멤버 변수를 호출한 객체의 주소를 가지고 있다.
       - 멤버 메소드는 메소드를 호출한 객체의 주소를 알아야 메소드의 결과를
         리턴하기 때문에 호출한 객체의 주소를 저장 하기위해 this 객체 변수를 사용한다.

    프로그램 실행결과

    소스 파일

    ThisTest.java
    0.00MB

     

     

    2. super - super는 부모클래스의 객체의 Hashcode를 가지고 있다.

    프로그램 실행결과

    소스 파일

    SuperTest.java
    0.00MB

     

     

    3 - (1). this()생성자의 실습

       - 파라미터가 계속 증가해도 기존의 생성자를 이용 할 수 있다.

    프로그램 실행결과

    소스 파일

    ThisExam.java
    0.00MB

     

     

    3 - (2). this()생성자의 실습

    프로그램 실행결과

    소스 파일

    ThisExam.java
    0.00MB

     

     

    4. super() 생성자 메소드
       - 초기화 하려는 변수가 부모클래스와 자식 클래스 간에 나누어져 있는 경우

         부모와 자식의 생성자에서 그 변수들을 나누어 초기화 한다.
         . 자식 클래스() 시작 ---> 부모 클래스 생성자() 시작/완료 --> 자식 클래스() 완료

       - 자식 클래스는 자신이 가지고 있는 멤버 변수만 초기화하고 

         나머지는 부모클래스의 생성자를 호출해서 부모클래스의 멤버로 초기화 한다.

       - 부모 클래스의 생성자를 호출할 경우는 반드시 자식 클래스의 생성자 안에서
         가장먼저 선언해야 한다. 
         이유는 자식 클래스의 모듈이 실행되기 전에 부모클래스의 생성자가 먼저 실행이 
         되어야 하는 우선순위의 규칙 때문에 그렇다.

    프로그램 실행결과

    소스 파일

    SuperExam.java
    0.00MB

     

     

    위의 내용을 좀 더 수정하면 다음과 같다.

    프로그램 실행결과

    소스 파일

    CCTest.java
    0.00MB

     

    'JAVA > 상속' 카테고리의 다른 글

    final class & method  (0) 2020.10.11
    추상 클래스(abstract class)  (0) 2020.10.11
    상속 관계에서의 생성자  (0) 2020.10.10
    객체 형변환  (0) 2020.10.10
    Method Overriding  (0) 2020.10.10

    댓글

Designed by Tistory.