[Java] 자바 this의 의미와 사용법

People클래스에 Age필드와 setAge( ) 메소드가 다음과 같이 선언되어 있다고 가정해보겠습니다.

public class People{

  //필드
  int age;

  //메소드
  void setAge(int a){
    age = a;
  }
}

위와같이 age에 외부의 값을 입력받을 수 있는 setAge( )라는 Setter함수를 선언하였습니다. 위에서는 메서드의 인자 변수이름을 int a라 하였는데 여기서 인자값의 변수를 필드의 이름과 같이 하려면 어떻게 해야할까요?

 

this를 사용하면, 메서드의 인수나 변수에 필드와 같은 이름을 붙여도 그것들을 구분하여 사용할 수 있습니다. this는 주로 생성자와 메소드의 매개변수 이름이 필드와 동일한 경우, 인스턴스 멤버인 필드임을 명시하고자 할때 사용됩니다.

public class People{

  //필드
  int age;

  //메소드
  void setAge(int age){
    this.age = age;
  }
}

위와 같이 인자값의 변수명과 필드의 변수명이 같아도 this를 활용하면 같이 사용이 가능합니다. 위의 코드를 예로 들자면 this.age는 필드인 age를 의미합니다. 즉, this의 뒤의 변수명은 인수가 아닌 멤버변수(필드)를 의미하는 것이 됩니다.

댓글(12)

  • 2020.04.21 02:19 신고

    잘 보고 갑니다ㅎㅎㅎ 제 블로그도 놀러오세요~

  • 2020.04.21 08:55 신고

    잘보고 가요~^^ 구독합니다^^

  • 2020.04.21 18:00 신고

    포스팅 잘보고 갑니다~
    좋은하루 보내시고
    자주 소통해요~

  • 알 수 없는 사용자
    2020.04.21 19:04

    개인적으로 코팅한지가 넘 오래 되어서 생각이 잘 않나지만 님의 블로그를 보니 다시 살아 있는 느낌이 납니다.
    암튼 수고 하시고 대박 나세요 ^^

  • 2020.04.22 01:22 신고

    안녕하세요~ 좋은 정보글 감사드리며 일일방문자 25000명 축하드립니다!
    구독하고갑니다:D

  • 2020.04.22 09:27 신고

    this를 사용하면, 메서드의 인수나 변수에 필드와 같은 이름을 붙여도 구분할 수 있군요.
    this가 이것이라는 뜻의 영어 단어인지만 알았는데 자바에서 무척 필요한 디스네요.

  • 2020.04.22 09:39 신고

    저도 코딩 공부를 다시 시작하려고 하는데 자주 올 것 같네요 ㅎㅎ 구독하겠습니다. 소통해요~

  • 2020.04.22 11:30 신고

    좋은 정보 감사해요~~ 구독, 좋아요 꾸욱 누룹니다~~

  • 2020.04.22 15:33 신고

    좋은 정보 감사합니다!!! 구독 했어요 !!
    피드로 자주 소통해요~~!

  • 익명
    2020.04.22 15:37

    비밀댓글입니다

  • 2020.04.22 18:39 신고

    너무 대단하시네요 자주 와서 많이 공부하고 갈께요 진짜로요 대단하십니다.

Designed by JB FACTORY