Java

[Java] 자바 기초 용어 정리

wwxs 2024. 9. 23. 10:35

1. 접근제한자

: 클래스, 메서드, 필드 등에 대한 접근 권한을 제어하는 데 사용

  • public: 모든 클래스에서 접근 가능
  • protected: 같은 패키지 또는 상속 받은 클래스에서만 접근 가능
  • default: 접근제한자를 명시하지 않으면 기본으로 같은 패키지 내에서만 접근 가능
  • private: 같은 클래스 내에서만 접근 가능

→ 접근 범위에 따라 결정

→ 같은 클래스 / 패키지 / 상속 클래스에서 접근할 수 있는지 여부가 중요!!

 

2. static

: 클래스 수준에서 공유되는 변수를 정의하거나 메서드를 선언할 때 사용

  • static 변수: 모든 인스턴스가 공유하는 클래스 변수
  • static 메서드: 인스턴스가 아닌 클래스에서 직접 호출할 수 있는 메서드

→ 객체 인스턴스가 아니라 클래스 자체에 속하는 변수나 메서드

→ 정적 멤버(변수, 메서드)의 경우 인스턴스화 필수 X

→ 일반 멤버(변수, 메서드)의 경우 인스턴스화 필수!!

 

더보기

cf) static class

: 자바에 static class에 대한 개념 X

→ 내부에 클래스의 형태 중 static 중첩 클래스가 존재

 

- 정적(static) 중첩 클래스

: 일반 클래스와 달리 외부 클래스의 인스턴스와 독립적으로 존재 가능

→ 외부 클래스의 인스턴스 없이도 객체 생성 가능

 

3. finla

: 수정 불가능한 것

→ 사용 위치에 따라 의미가 가능

  • final 변수: 값을 한 번만 할당할 수 있고, 그 이후 변경할 수 없음
  • final 메서드: 해당 메서드를 하위 클래스에서 재정의(Override)할 수 없음
  • final 클래스: 상속할 수 없는 클래스 즉, 해당 클래스를 하위 클래스로 만들 수 없음

→ 한 번 정해지면 더 이상 변경되지 않는다는 공통된 특성을 가짐

 

4. abstract

: 추상화 개념을 적용할 때 사용

→ 주로 클래스와 메서드에 사용

  • abstract 클래스: 인스턴스를 생성할 수 없고, 추상 메서드를 포함할 수 있는 클래스
  • abstract 메서드: 구현을 제공하지 않고 하위 클래스에서 반드시 구현해야 하는 메서드

→ abstract은 구현이 없는 상태를 의미

→ 설계 단계에서 구체적인 구현을 하도록 미루는 데 사용

 

5. interface VS abstract class

  • interface: 구현이 없는 추상 메서드의 집합 다중 구현이 가능하며, 메서드 선언만 포함
  • abstract class: 일부 구현을 포함할 수 있고, 상속을 통해 확장 가능. 단일 상속만 가능

→ 인터페이스: 다중 구현 가능

→ 추상클래스: 단일 상속만 가능, 구체적인 구현을 포함할 수 있음

 

6. extends VS implements

  • extends: 클래스가 다른 클래스를 상속받을 때 사용
  • implements: 클래스가 인터페이스를 구현할 때 사용

→ extends: 클래스 간의 상속

→ implements: 인터페이스의 메서드를 구현

 

7. super VS this

  • this: 현재 인스턴스의 참조. 주로 필드와 지역 변수를 구분하거나, 생성자에서 다른 생성자를 호출할 때 사용
  • super: 부모 클래스의 참조. 부모 클래스의 메서드나 생성자를 호출할 때 사용

→ this: 현재 객체

→ super: 부모 객체

 

8. 오버로딩(Overloading) VS 오버라이딩(Overriding)

  • 오버로딩: 같은 이름의 메서드를 여러 개 정의하되, 매개변수 타입이나 개수가 다름
  • 오버라이딩: 부모 클래스의 메서드를 자식 클래스에서 재정의하여 다른 동작을 구현

→ 오버로딩: 메서드의 시그니처가 다를 떄 사용

→ 오버라이딩: 상속받은 메서드의 구현을 변경할 때 사용

 

9. try - catch - finally

  • try: 예외가 발생할 수 있는 코드를 포함
  • catch: 예외가 발생했을 때 처리할 코드를 포함
  • finally: 예외가 발생하든 그렇지 않든 항상 실행되는 코드를 포함

→ 예외 처리 흐름을 제어하는 데 사용

→ finally는 예외 처리 후 리소스 정리에 주로 사용

'Java' 카테고리의 다른 글

[Java] Set  (0) 2024.09.23
[Java] List  (0) 2024.09.23
[Java] Collection  (0) 2024.09.12
[Java] API  (0) 2024.09.12
[Java] Exception  (0) 2024.09.10