자바는 학습할 내용이 많다 보니 제대로 정리하지 않으면, 놓치는 개념이 많아지기 십상입니다.😂
혼자서도 자바를 공부할 수 있도록 클래스 & 상속과 관련된 자바 용어를 정리하였습니다.

[ctrl + f] 키로 궁금하신 내용을 검색해보시고,  게시물 하단의 링크에서 전체 자바 용어 정리 PDF 파일을 다운로드 받아 활용해보세요!

 

 

 


클래스

객체(object):
물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말함.
ex) 자동차, 자전거, 책, 사람 / 학과, 강의, 주문 등…

 

인스턴스(instance):
클래스로부터 만들어진 객체

*인스턴스 멤버와 정적 멤버:
인스턴스 멤버란 객체(인스턴스)를 생성한 후 사용할 수 있는 필드와 메소드를 말한다. 이들을 각
각 인스턴스 필드, 인스턴스 메소드라고 부른다. 정적 멤버는 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드를 말한다. 이들을 각각 정적 필드, 정적 메소드라고 부른다. 정적 멤버는 객체가 아닌 클래스에 소속된 멤버이기 때문에 클래스 멤버라고도 한다.

 

 

생성자(constructor):
new 연산자로 호출되는 특별한 중괄호 블록. 객체 생성 시 객체를 초과하는 역할을 한다. 메소드와 비슷하게 생겼지만, 클래스 이름으로 되어 있고 반환형이 없다. 객체 초기화란 필드를 초기화하거나, 메소드를 호출해서 객체를 사용할 준비를 하

는 것을 말한다.

 

 

싱글톤(Singleton):
전체 프로그램에서 하나의 클래스에 단 하나의 객체만 만들도록 보장해야 하는 경우에 사용하는데, 이 때 생성된 객체를 싱글톤이라고 부른다. 생성자를 호출한 만큼 객체가 생성되기 때문에 클래스 외부에서 new 연산자로 생성자를 호출할 수 없도록 막아야 한다. 생성자 앞에 private 접근 제한자를 붙이고, 필드에 자기 자신의 객체를 static으로 선언하면 된다.

 

 

식별자(identifier):
프로그래밍 언어에서 프로그래머가 변수, 메소드, 클래스 등에 부여하는 이름

 

 

리턴 타입(return type):
메소드가 실행 후 리턴하는 값의 타입. 반환형이라고도 한다. void로 선언된 리턴 값(return value)이 없는 메소드에서도 return문을 사용할 수 있지만 리턴값 없이 사용해야 한다.

 

 

리턴(return):
함수를 실행했던 위치로 돌아가게 하는 것. 리턴값을 가지는 함수는 반드시 리턴할 때 반환하는 값이 있어야 한다.

 

 

메소드 선언부(method signature):
리턴형, 메소드 이름, 매개 변수 선언을 포함하는 것. 영문명 그대로 메소드 시그니처라고도 한다.

 

 

매개변수(parameter):
메소드가 실행할 때 필요한 데이터를 외부로부터 받기 위해 사용. 매개 변수가 필요한 경우가 있고 필요 없는 경우가 있다.

자바 전달인자 매개변수

 

 

필드(field):
객체의 데이터*가 저장되는 곳. 생성자와 메소드 전체에서 사용되며 객체가 소멸되지 않는 한 객체와 함께 존재한다.
*데이터: 여기서 데이터는 멤버 변수를 뜻한다.

자바 클래스의 구조

 

 

상수(constant value):
값을 한 번 저장하면 변경할 수 없는 변수. 상수의 이름은 모두 대문자로 작성하는 것이 관례이다. 서로 다른 단어가 혼합된 이름이라면 언더바( _ )로 단어들을 연결해준다.

static final double EARTH_SURFACE_AREA;
static final double EARTH_RADIUS = 6400;
static {
    EARTH_SURFACE_AREA = 4 * MATH.PI * EARTH_RADIUS * EARTH_RADIUS;
}
…
EARTH_SURFACE_AREA = 10; //에러!

 

 

접근 제한자(access modifier):
객체의 필드와 메소드의 사용 범위를 제한하여 외부로부터 보호한다. 캡슐화된 멤버를 노출시킬 것인지, 숨길 것인지를 결정하기 위해 접근 제한자를 사용한다.

 

*GETTER와 SETTER
외부에서 마음대로 읽고 변경할 수 없도록 제어하는 메소드. 필드에 직접 접근하지 않고 데이터를 조회, 수정할 수 있도록 하는 역할을 한다. 만약 외부에서 필드값을 읽을 수만 있고 변경하지 못하도록 하려면(읽기 전용) Getter 메소드만 선언하거나, 아니면 Setter 메소드를 필요에 따라
private 혹은 protected 접근 제한을 갖도록 선언하면 된다.

함께 읽어보면 좋은 콘텐츠: 자바 접근 제한자의 종류와 차이(public, protected, private)

 

 

오버로딩(overloading):
오버로딩의 사전적 의미는 많이 싣는 것을 뜻한다. 하나의 메소드 이름으로 여러기능을 담는다 하여 붙여진 이름이라 생각할 수 있다.

  • 메소드 오버로딩: 클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것. 매개 변수의 타입, 개수, 순서 중 하나가 달라야 한다.
  • 생성자 오버로딩: 매개 변수를 달리하는 생성자를 여러 개 선언하는 것.

*연산자 오버로딩: 자바에서는 지원하지 않지만 C++과 같은 언어에서는 연산자도 오버로딩하여 사용할 수 있다.

 

 

타입 변환:
자료 타입을 다른 자료 타입으로 변환하는 것.

  • 자동 타입 변환: 프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것을 말한다.
    Animal animal1 = new Cat();
    *animal1은 Cat으로 자동 타입 변환
     
  • 강제 타입 변환casting: 프로그래머가 강제적(명시적)으로 타입을 변환하는 것을 말한다.
    float f1 = 1.23F;
    int n1 = (int)f1; //n1에 1 저장
    int n2 = f1; //자료형 불일치로 에러

 

 

 


상속

상속(inheritance):
상위(부모) 객체를 기반으로 하위(자식) 객체를 생성하는 관계를 말한다. 상위 객체는 자기가 가지고 있는 필드와 메소드를 하위 객체에게 물려주어 하위 객체가 사용할 수 있도록 한다. 일반적으로 상위 객체는 종류를 의미하고, 하위 객체는 구체적인 사물에 해당한다. 자식 클래스를 선언할 때 어떤 부모 클래스를 상속받을 것인지 결정한다.

  • 부모(parent class, super class / 상위 클래스): 해당 클래스에 선언된 변수와 함수를 물려주는 클래스
  • 자식(child class, sub class / 하위 클래스): 다른 클래스로부터 물려받고자 하는 클래스

 

 

오버라이딩(overriding):
부모에게서 상속받은 메소드의 내용이 자식 클래스에 맞지 않을 경우, 자식 클래스에서 동일한 메소드를 재정의하는 것을 말한다.

 

 

다형성(polymorphism):
같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질을 말한다. 코드 측면에서 보면 다형성은 하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 이용할 수 있도록 해준다.

 

 

추상 클래스(abstract class):
실체 클래스가 공통적으로 가져야 할 필드와 메소드들을 정의해 놓은 추상적인 클래스. 추상 클래스는 실체 클래스의 공통되는 필드와 메소드를 추출해서 만들었기 때문에 객체를 직접 생성해서 사용할 수 없다.

 

 

상 메소드(abstract method):
하위 클래스가 반드시 오버라이딩하도록 하고 싶은 경우 사용하는 메소드. 메소드의 선언부만 있고 메소드 실행 내용인 중괄호가 없다. 추상 메소드는 추상 클래스 안에서만 선언 가능함.

Animal animal1 = new Cat();
Animal animal2 = new Dog();
animal1.sound(); //야옹
animal2.sound(); //멍멍

자바 추상 메소드

 

 

 


 

지금까지 자바의 클래스와 상속에서 쓰이는 용어에 대해 알아보았습니다.
<혼자 공부하는 자바>의 부록인 ‘혼공 용어 노트‘에서 전체 내용을 확인하실 수 있습니다.

혼자 공부하는 자바
프로그래밍 초보자 사이에서 입소문이 자자한 자바 기초 도서!

입문자 맞춤형 체계적인 반복 학습과 245개의 예제로 실전 감각을 기를 수 있어 프로그래밍이 처음인 사람부터 복습을 원하는 전공생까지 볼 수 있는 도서입니다. 🙂

 

손코딩예제
📑혼공 용어노트 PDF

👀도서 자세히보기
👨‍💻유튜브 무료 강의