TIL) Java - 클래스 내부 구성 요소

oatraspberry·2022년 12월 7일
post-thumbnail

생성자

객체를 생성하는 역할을 지닌 클래스의 내부 구성 요소

특징

  • 생성자의 이름은 클래스의 이름과 동일한 이름으로 지어야 함.
  • 반환(리턴)타입이 존재하지 않음
  • 생성자는 리턴 값이 없다. (void 안 붙임)
  • 모든 클래스는 반드시 생성자를 가져야 한다.

주요 역할

  • 객체 생성 및 필드 초기화
Time t=new Time(); // 1. 객체 생성
t.hour=12;
t.minute=34;
t.second=56;  // 2. 초기화

Time t=new Time(12, 34, 56); // 생성자 호출

기본 생성자(default constructor)

매개변수가 없는 생성자

생성자가 하나도 없을 때만, 컴파일러가 자동 추가

클래스이름() {} // 기본 생성자

Point() {} // Point클래스의 기본 생성자

매개변수가 있는 생성자

class Car {
 String color; // 색상
 String gearType; // 변속기 종류- auto(자동), manaul(수동)
 int door; // 문의 개수

 Car() {} // 기본 생성자
 Car(String c, String g, int d) { // 매개변수가 있는 생성자
    color = c;
    gearType =g;
    door =d;
  }
}


Car c= new Car();
c.color= "white";
c.gearType="auto";
c.door=4;

Car c=new Car("white", "auto", 4);

this

자신이 속한 클래스의 객체

  • 모든 필드와 메서드 활용시에는 소속과 함께 표기해야 함. (정의식에서는 사용하지 않음)
  • 클래스 내부의 필드와 메서드에 소속을 표기하지 않는 경우 컴파일러가 자동으로 소속(this.)을 붙여줌.
  • static 메서드 내에서는 this 키워드를 사용할 수 없음.
  • 지역변수에는 this.가 붙지 않음.
  • 객체를 구별해줌.

this() 메서드

자기 클래스 내부의 다른 생성자를 호출

  • 생성자 내부에서만 사용 가능
  • 반드시 중괄호 이후 첫 줄에 위치하여야 함
  • this() 메서드를 이용하여 생성자의 중복성 제거

📢 this와 this()는 비슷하게 생겼을 뿐 완전히 다른 것이다.
this는 '참조 변수'이고, this()는 '생성자'이다.
생성자와 인스턴스 메서드에서만 this 사용 가능. 클래스 메서드에서는 this 사용 불가!



패키지(package)

비슷한 목적으로 생성된 클래스 파일들을 한 곳에 모아둔 폴더
프로젝트의 하위 폴더의 개념

  • 클래스 파일을 목적별로 묶어서 관리
  • 패키지마다 이름 공간(namespace) 생성->클래스 이름의 충돌 방지

대표적인 패키지

  • java.lang: 자바의 가장 기본 클래스 묶음
  • java.util: 유용한 확장 클래스 묶음
  • java.awt/java.swing/javafx: 자바 그래픽 관련 클래스 묶음
  • java.io/java.nio: 자바 입출력 패키지 관련 클래스

임포트(import)

다른 패키지의 클래스를 사용하고자 할 때 사용한다.

  • 다른 패키지의 클래스 사용을 위해 클래스 이름의 전체 경로(패키지.클래스) 이름 사용
  • 다른 패키지에서 사용하려면 public이어야 한다.
  • 다른 패키지의 클래스를 사용을 위해 import 패키지명.클래스명
  • 패키지가 다른 동일한 이름의클래스는 두 개 이상 import 불가
  • 패키지의 모든 클래스를 한 번에 임포트 하기 위해서는 *사용

외부클래스(external class)

특징

  • 클래스의 외부에서 정의
  • 동일한 파일에 작성된 클래스는 동일한 패키지 내의 클래스로 간주
  • 하나의 파일에는 최대 하나의 public class만 존재 가능
profile
개발자가 될테야

0개의 댓글