new

Jiian·2022년 5월 3일

Java-Object-Oriented

목록 보기
3/7

해당 게시물은 "생활코딩 - JAVA 객체 지향 프로그래밍" 유튜브 강의를 정리한 내용입니다.

생성자란?

어떤 클래스가 복제되었을 때(즉 인스턴스가 생성되었을 때), 바로 어떤 일이 처리되게 하거나, 어떤 값을 주입받도록 하기 위해 사용할 수 있는, 유용한 메소드 기능


class Print {
    public String delimiter = "";

    // 생성자는 클래스와 이름이 같다.
    public Print(String _delimiter){ 
    //new Print("----");에서  매개변수 String 을 받아와야 함
       delimiter = _delimiter; // 매개변수로 받아온 값을 클래스 변수에 저장해둠
    }

    public void A() {
        System.out.println(delimiter);
        System.out.println("A");
        System.out.println("A");
    }

}
public class MyOOP {
    public static void main(String[] args) {
        // Print 라는 클래스의 복제본을 만듦
        Print p1 = new Print("----"); // Print 라는 데이터타입의 p1 이라는 인스턴스
        p1.A();
       }
       
       
        // 생성자 덕분에 아래와 같이 출력이 될 수 있음
       // ----
       // A
       // A
       
  

그러나 만약 클래스 변수와 생성자 매개변수를 같은 이름, 'delimiter' 로 한다면, this 를 사용한다. this는 내가 생성한 인스턴스를 가리키는 것이다.

class Print {
    public String delimiter = ""; // this.delimiter 는 인스턴스의 delimiter 를 가리키기에
                                  // 얘를 가리키는 것이다.

    public Print(String delimiter){ //new Print("----");에서 매개변수 String 을 받아와야 함
       this.delimiter = delimiter; // 매개변수로 받아온 값을 클래스 변수에 저장해둠
    }

    public void A() {
        System.out.println(this.delimiter);
        System.out.println("A");
        System.out.println("A");
    }
   }
public class MyOOP {
    public static void main(String[] args) {
        // Print 라는 클래스의 복제본을 만듦
        Print p1 = new Print("----"); // Print 라는 데이터타입의 p1 이라는 인스턴스
        p1.A();
   }
  }
profile
Slow and Steady

0개의 댓글