객체 지향 언어인 자바의 클래스와 객체, 인스턴스의 관계에 대해 설명하고 추상클래스와 인터페이스의 차이점, 패키지와 상속, 오버로딩에 대해 정리한 글입니다.
클래스와 객체
먼저 간단한 클래스 예제를 보겠습니다.
public class MyClass {
private int name;
public MyClass(int name) {
this.name = name;
}
public void display() {
System.out.println("Name: " + name);
}
}
클래스 (Class) 란 객체를 정의해 놓은 것입니다. 객체의 설계도 또는 틀로써 객체를 생성하는데 사용되죠.
객체 (Object) 란 우리가 볼 수 있는 모든 사물, 물체 등이 오브젝트입니다. 객체는 속성과 동작(기능)를 가지며 클래스에 의해 정의되고 설계된 내용을 기반으로 생성됩니다.
클래스로부터 생성된 객체를 클래스의 인스턴스 (Instance) 라 부릅니다.
public class MyClass {
}
필드 (Field) (인스턴스 변수) 란 클래스에서 생성된 객체의 상태나 속성을 나타냅니다.
private int name;
생성자 (Constructors) 는 클래스의 객체를 생성하고 초기화합니다. 클래스명과 이름이 같으며 객체가 생성될 때 호출됩니다.
public MyClass(int name) {
this.name = name;
}
메서드 (Method) 란 클래스의 객체가 수행할 수 있는 동작 및 작업을 정의합니다.
추상클래스와 인터페이스
추상클래스 (Abstract)
추상클래스는 하위 클래스들의 공통점을 모아 추상화하여 만든 클래스로 상속받아서 기능을 확장시키는 개념입니다. 객체 간의 필드와 메서드의 이름을 통일해 소스의 가독성을 높이기 위해 사용합니다.
추상 클래스는 abstract 키워드를 붙입니다.
인터페이스 (Interface)
인터페이스는 일종의 추상 클래스로 구현 객체의 동일한 실행 기능을 보장하기 위한 목적입니다. 자체로 사용되기 보다 다른 클래스를 작성하는데 도움을 줄 목적으로 작성됩니다.
패키지와 상속
패키지 (Package)
패키지는 서로 관련이 있는 클래스나 인터페이스를 묶어 놓은 것입니다.
상속 (Inheritance)
기존의 클래스를 재사용해서 새로운 클래스를 만들 때 extend 키워드를 사용해 클래스를 상속합니다. 클래스를 상속하면 자식 클래스는 부모 클래스의 메서드나 필드 등을 사용할 수 있습니다.
오버로딩과 오버라이딩
오버로딩 (Overloading)
오버로딩은 이름은 같지만 매개변수가 다른 메서드를 말합니다.
오버라이딩 (Overriding)
오버라이딩이란 부모가 가진 메서드와 똑같은 메서드를 자식이 가지고 있는 것을 말합니다. 부모클래스가 가진 메서드를 조금 다르게 사용하고 싶을 때 씁니다.
관련포스트 |
JAVA 개발 환경 설정 (비주얼 스튜디오 코드) |
JAVA | 자바 생태계 (플랫폼, 프레임워크, JDK) |
자바 프레임워크 | SPRING 프레임워크와 스프링 부트 소개 |
'컴퓨터공학 > 프로그래밍' 카테고리의 다른 글
파이썬 언어 특징, 개발 환경과 패키지 (96) | 2024.04.17 |
---|---|
블록 코딩 플랫폼 소개 - 스크래치, 엔트리 (16) | 2023.02.21 |
파이썬 | 반복문(while, for) 조건문 (6) | 2022.11.15 |
템플릿 언더바 (Template_) 기초 (0) | 2021.06.10 |
객체지향 프로그래밍 개념 (0) | 2021.01.01 |
프로그래밍 언어 공통 기초 지식 (0) | 2020.12.08 |
PHP | 소스 그대로 보일 경우 해결방법 (2) | 2020.10.19 |
C# | ref. 언어참조 : 키워드와 데이터 형식 (0) | 2020.02.07 |
댓글