객체
- 특성과 행동을 가짐
- 다른 객체들과 상호작용하면서 존재
- 클래스 모양 그대로 찍어낸 실체
- 메모리 공간을 가짐
- 인스턴스
캡슐화
- 외부의 접근으로부터 객체 보호
- -> 클래스(속성+행동)
상속
- 하위 객체가 상위 객체의 속성을 모두 가지는 관계
- 부모 클래스 = 수퍼 클래스
- 하위클래스 = 서브 클래스
다형성
- 같은 이름의 메소드가 클래스나 객체에 따라 다르게 동작하도록 구현
- 메소드 오버리딩 : 같은 이름이지만 다르게 작동하는 여러 메소드
- 메소드 오버라이딩 : 슈퍼클래스의 메소드를 서브 클래스마다 다르게 구현
| 객체지향언어 | 절차지향언어 |
| - 소프트웨어 재사용과 부분 수정 빠름 - 다시 만드는 부담 줄임 - 소프트웨어 생산성 향상 - 실세계에 대한 쉬운 모델링 |
- 작업 순서 표현 - 객체들 간의 상호 작용으로 표현 |
클래스
- class 키워드로 선언
- public(다른 클래스에서 사용, 접근 o )
- 필드 : 객체 내에서 사용되는 멤버변수
- 메소드: 함수
생성자 :
- 생성자 이름 = 클래스 이름
- 객체 생성시 객체의 초기화를 위해 자동 호출 메소드
- 여러 개 작성 가능 (오버로딩)
- new를 통해 객체 생성
- 리턴 타입 지정 불가
- 기본 생성자 : 매개변수 없고 아무 작업없이 리턴하는 생성자
this :
- 객체 자신에 대한 레퍼런스
- 매개변수와 메소드 변수의 이름이 같을 때 사용
- this()
- 클래스 내의 다른 생성자 호출
- 반드시 생성자 코드의 제일 처음 수행
메소드
- 클래스의 멤버 함수
- 캡슐화의 원칙에 따라 클래스 안에 존재
메소드 오버로딩
- 이름이 같은 메소드 작성
- 매개변수의 개수나 타입이 다름
가비지 컬렉션
- 자바에서 가비지를 자동 회수 과정
- 장점: 프로그램에 더 이상 사용되지 않는 메모리를 자동으로 회수해주므로 편리함
- 단점: 가비지 컬렉션이 진행되는 동안 응용 프로그램이 중단된다
- System.gc();
패키지
- 관련 있는 클래스 파일을 저장하는 디렉터리
접근지정자
| Public class | Default class |
| 모든 클래스에게 접근 허용 | 같은 패키지의 클래스에만 접근 허용 |
| Public | Protected | Default | Private |
| 같은 패키지o 다른 패키지o |
같은 패키지o 다른 패키지 자식클래스 o 다른 패키지x |
같은 패키지o 다른 패키지x |
같은 패키지x 다른 패키지x |
- 필드 멤버는 private로 선언하여 보호하는 것이 바람직하다.
non-static, static

non-static(인스턴스 멤버)
- 객체마다 생성 되는 것
static
- 전역 변수와 전역 함수를 만들 때
- 고유 멤버를 작성할 때
- non-static 멤버 접근할 수 없음
- static 메소드는 객체가 생성되지 않은 상황에도 호출 가능
- -> this 사용 불가, 인스턴스 멤버 접근 불가
final
- 상수 선언할 때 사용
- 선언 시에 초기값 지정
- 실행 중 값 변경x
- final 클래스는 클래스 상속 불가라는 뜻
'java' 카테고리의 다른 글
| 3강 반복문의 배열 그리고 예외 처리 (0) | 2025.02.26 |
|---|---|
| 2강 자바 기본 프로그래밍 (0) | 2025.01.10 |
| 1강 자바 시작 (1) | 2025.01.10 |