JAVA 객체지향 프로그래밍

생성자와 this

수업소개

인스턴스를 생성할 때 해야 할 초기화 작업을 정의하는 생성자에 대해서 살펴보는 시간입니다.

 

 

 

강의

소스코드

public class MyOOP {
    public static void main(String[] args) {
		Print p1 = new Print("----");
		p1.A();
		p1.A();
		p1.B();
		p1.B();

		Print p2 = new Print("****");
		p2.A();
		p2.A();
		p2.B();
		p2.B();
		
		
		p1.A();
		p2.A();
		p1.A();
		p2.A();
	}
}

 

댓글

댓글 본문
  1. 양미림
    public Print는 메소드가 아니라 생성자입니다! 보시면 클래스 이름이 print죠? 일반적으로 생성자는 클래스 이름이랑 동일하게 만듭니다 그래서 print 클래스의 print 생성자를 만든 거예요 메소드량 형태가 비슷하지만 메소드는 리턴 타입이 있고 생성자는 없습니다
    대화보기
    • 김민재
      궁금한게 있는데 Print클래스에 있는 public Print 메소드에는 return값이 없는데 void 안붙여도 상관없는건가요??
    • 선대범
      생성자는 클래스의 인스턴스인 객체를 생성시 인수를 입력하면 그 인수를 받아 어떤 특정한 기능을 하는 코드이다.

      생성자는 메소드를 만들듯이 만들면 되는데 이때 메소드의 이름을 해당 클래스의 이름과 같은 이름으로 그 클래스 내부에 만들면 그것은 생성자가 된다.


      a) 클래스 인스턴스명 = new 클래스명();
      b) 클래스 인스턴스명 = new 클래스명(인수);

      클래스 {
      클래스명() {

      }
      클래스명(파라미터) {

      }
      }

      a)처럼 () 안에 인수가 없으면 파라미터가 없는 생성자로 던져지고 {} 안의 내용을 실행한다. 사용자가 아무런 데이터도 입력하지 않은 경우를 대비한 생성자이다.

      b)처럼 ()안에 인수가 있다면 자료형과 인수의 갯수가 일치하는 파라미터가 있는 생성자로 던져지고 {} 안의 내용이 실행된다. 사용자가 특정한 데이터를 입력할 떄를 대비한 생성자이다.

      --------------------------------------------------------------------------------

      생성자의 파라미터명과 멤버변수명이 같을 경우가 많은데 이 때 초기화 시키는 방법이 this를 사용하는 것이다. this는 클래스의 멤버변수를 가르킨다.

      a) 클래스 인스턴스명 = new 클래스명();
      b) 클래스 인스턴스명 = new 클래스명(인수);

      클래스 {
      접근권한 자료형 멤버변수명= ...
      클래스명() {

      }
      클래스명(파라미터명[== 멤버변수명]) {
      this.멤버변수명 = 파라미터명;
      }
      }

      클래스의 인스턴스인 객체를 생성할 때 인수를 입력하면 그 값은 생성자의 파라미터로 넘어오고 그 파라미터는 해당 생성자의 지역변수가 되어서 멤버변수에 대입된다. 결과적으로 멤버변수의 값이 인수의 값으로 변경되는 것이다.
    • hyuna lee
      감사합니다.
    • 빽토리얼
      생성자는 인스턴스 초기화 시 매개변수를 필요로 한다면 class 내에서 같은 class 이름을 사용함으로써 지정 가능하다.
      (class Print{
      public Print(String s){ ... } )
      여기서 this. 키워드를 변수 앞에 붙여서 이 변수가 자신의 클래스 내에 있다는 것을 명시해준다.
    • 넘무
      생성자는 인스턴스를 사용할때 초기에 값을 주입할때 사용하고
      this는 인스턴스의 변수,메소드를 지칭할때 사용한다
      좋은 강의 감사합니다
    • 생성자는 초기에 지정해야 할 값이 있을때 public 클래스 이름동일 형식으로 만든다

      그리고 this는 클래스가 인스턴스화 될 때 인스턴스 변수 값을 지정함
    • jajavava
      생성자는 인스턴스를 생성할 때 초기에 셋팅할 값이 있는 경우에 만들고, 클래스의 이름과 동일한 메소드이다.
      (public만 붙여서 만듬)
      this는 클래스의 인스턴스 변수를 가르킬때 붙여준다.
    • 임위닝
      this에서 많이 헷갈려서 인터넷강의를 찾다가 들어오게되었습니다
      정말 감사합니다
    • 2020.03.15 완료
    • 감사합니다..
    • 라또마니
      감사합니다.
    • 쑤우
      수강완료. 감사합니다~
    • 제넷
      생성자와 this 개념이 모호했는데
      확실하게 정리되었네요! 감사합니다.
    • 허공
      감사합니다!
    graphittie 자세히 보기