Gom3rye

[객지프] 1 page summary - 클래스 기본 본문

카테고리 없음

[객지프] 1 page summary - 클래스 기본

Gom3rye 2022. 4. 13. 23:37

클래스

: 속성과 기능을 가지고 있는 설계도

- 클래스로부터 만들어진 객체를 해당 클래스의 instance라고 한다.

- 하나의 클래스로부터 여러 개의 instance를 만들 수 있다.

클래스 명명 규칙

  • 대문자로 시작(알파벳 대소문자 구분)
  • 되도록 영어 이름으로 작성
  • 첫 글자와 연결된 다른 단어의 첫 글자는 대문자로 작성하는 것이 관례 Ex) ChatServer, ChatClient
  • 첫 번째 글자에는 숫자가 올 수 없다.
  • 자바 키워드와 $,_ 외의 특수 문자는 사용할 수 없다.

.java -> 클래스를 정의한 파일

Car.java -> Car를 모델링한 설계 파일 (Car 클래스를 만들면 Car.java가 만들어진다)

Car.class -> Car.java로 만들어진 바이트코드 (컴파일 후 생성되는 파일)

- 소스 파일 당 하나의 클래스를 선언하는 것이 관례이고 소스 파일 이름과 동일한 클래스만 public으로 선언 가능하다.

생성자

: 클래스 이름과 동일한 특별한 메소드

- 객체가 생성될 때 자동으로 한 번 호출되어 객체를 초기화하는데 필요한 코드를 담고 있다.

- 리턴타입이 없는 특별 메소드이다.

- new를 통해 객체를 생성할 때 반드시 호출된다.

- 클래스 내에서 하나 이상 선언되어야 하고 개발자가 작성 x -> 컴파일러가 자동으로 기본 생성자 삽입한다.

- 클래스 이름 = 생성자 이름

- 메소드 오버로딩으로 필요에 따라 여러 개의 생성자 작성이 가능하다.

- 개발자가 클래스에 생성자가 하나라도 작성한 경우, 기본 생성자가 자동으로 삽입되지 않는다.

- getter / setter : 접근제한자에 따른 값 설정/가져오기 메소드

this 레퍼런스

- 객체 자신의 참조를 위해 필요하다.(매개변수와 필드 이름이 같을 때 구분이 명확하다.)

- 객체의 치환은 레퍼런스(주소) 복사이다.

다형성 (Polymorphism)

  • 같은 이름의 메소드가 클래스나 객체에 따라 다르게 동작하도록 구현한다.
  • 메소드 오버로딩 vs 오버라이딩

- 오버로딩

Ex) void println()

     void println(boolean x)

     void println(float x) ... 등 매개변수의 개수나 타입이 다르지만 이름이 같은 메소드를 로딩하는 것

<리턴 타입은 오버로딩과 관련 x>

 

- 오버라이딩

Ex) Animal 클래스를 상속받은 Dog, Cat, Duck 클래스가 있다. 이 때 Animal 클래스의 기능인 소리내기()를 실행하면 Dog 클래스에서는 멍멍, Cat 클래스에서는 야옹, Duck 클래스에서는 꽥꽥 이 나온다. 이처럼 슈퍼 클래스에서 상속받은 메소드를 서브 클래스마다 다르게 구현하는 것을 오버라이딩이라고 한다.

 

728x90
반응형