Java의 this, 메소드, 접근 제한자

Dohyeon Kong·2024년 4월 4일
0

Java☕

목록 보기
5/12
post-thumbnail

Java의 this

this 래퍼런스

this는 객체 자신에 대한 레퍼런스를 의미하며 메소드 안에서 사용된다.

  • 컴파일러에 의해 자동으로 관리된다.
  • this는 클래스 안에 있는 변수를 의미한다.

this()

this()는 클래스 내 생성자가 다른 생성자를 호출할 때 사용하는 자바코드

this() 사용 예시 코드

this() 사용 시 주의할 사항

  • this()는 생성자에서만 사용된다.
  • this()는 반드시 같은 클래스의 다른 생성자를 호출할 때 사용된다.
  • this()의 호출은 생성자 코드의 첫 번째 문장이어야 한다.

메소드(Method)

메소드 형식

    1. 접근 지정자 : public, private , proteceted 등의 접근지정자가 선언된다.
    1. 리턴 타입 : 메소드가 호출자에게 리턴할 값의 타입을 의미한다. 메소드가 아무 값도 리턴하지 않는다면 void 타입을 선언한다.

인자 전달

  • 자바의 메소드 호출 시에 인자 전달 방식(argument passing)은 '값에 의한 호출'이다
  • 호출하는 실인자의 값이 복사되어 메소드의 매개변수에 전달된다.

1. 기본 타입의 값이 전달되는 경우

  • 매개 변수가 byte, char, int, double 등 기본 타입으로 선언되는 경우, 호출자가 건네는 값이 메소드의 매개 변수에 복사되어 전달한다.

2. 객체가 전달되는 경우

  • 메서드의 매개변수가 클래스 타입인 경우 객체가 아니라 객체의 래퍼런스 값이 전달된다.

3. 배열이 전달되는 경우

  • 배열이 전달되는 경우도 배열에 대한 래퍼런스가 전달된다.

메소드 오버로딩(Method Overloading)

클래스 내 이름이 같지만 매개 변수의 타입이나 개수가 서로 다른 여러 개의 메소드

  • 다형성의 한 종류이다.

메소드 오버로딩의 성립 조건

  • 메소드 이름이 동일하여야 한다.
  • 메소드 매개 변수의 개수나 타입이 서로 달라야 한다.
  • 주의 : 메소드의 리턴 타입은 오버로딩의 성공을 판단하는 것과 무관하다.
    또한, 접근 지정자 역시 메소드 오버로딩과 상관 없다.

메소드 오버로딩 예시

메소드 오버로딩 실패 예시


접근 지정자(Access specifier)

접근 지정자는 클래스나 멤버들을 다른 클래스에서 접근해도 되는지 여부를 선언하는 지시어

접근 지정자의 유형

  • 클래스 접근 지정
  • 멤버 접근 지정

클래스 접근 지정

  • public 클래스
  • 디폴트 클래스

public 클래스

패키지에 상관없이 다른 어떤 클래스에게도 사용이 허용되는 클래스

// 사용 예시
public class World{

}

디폴트 클래스(접근 지정자 생략)

같은 패키지 내에 있는 클래스들에게만 사용이 허용되는 클래스

// 사용 예시
class Local{

}

멤버 접근 지정

클래스 멤버에 대한 접근 지정은 총 4가지가 있다.

  • public 멤버
  • private 멤버
  • protected 멤버
  • default 멤버

public 멤버

public으로 선언된 것으로, 패키지에 상관없이 모든 클래스들이 접근이 가능한 멤버

private 멤버

비공개를 의미하며 private 멤버는 클래스 내 멤버들에게만 접근이 허용되는 멤버

protected 멤버

보호된 공개를 의미하며, 두 가지 클래스에만 공개한다.

공개될 수 있는 클래스

  1. 같은 패키지 내 모든 클래스에서 접근이 가능하다.
  2. 다른 패키지에 있더라도 자식 클래스의 경우 접근이 가능하다.

default 멤버

접근 지정자가 생력된 멤버를 의미하며 동일한 패키지 내에 있는 클래스들만 자유롭게 접근할 수 있는 디폴트 멤버


참조📜

  • 명품 JAVA ESSENTIAL - 황기태 지음-
profile
천천히, 꾸준히, 그리고 끝까지

0개의 댓글