▼▼▼▼▼
[개-발/JAVA] - JAVA. OOP - 객체지향프로그래밍
지금부터 OOP와 관련된 여러 개념에 대해 알아보자!!
실체 : 개미
객체의 속성 : 이름은 개미, 까맣고 매우 작다, 다리는 여섯개 등
객체의 동작 : 먹이를 먹는다. 부지런이 돌아다닌다. 등
- Object(객체) : 소프트 세계에 구현할 대상/ 객체는 모든 인스턴스를 대표하는 포괄적인 의미
- Instance(인스턴스) : 설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체
클래스 타입으로 선언되었을 때 객체라고 부르고,
그 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 부른다.
객체는 현실세계에 가깝고, 인스턴스는 소프트웨어 세계에 가깝다.
객체는 '실체', '인스턴스는 '관계'에 초점을 맞춘다.
- 소스 파일 생성: 클래스이름.java
- 소스 작성 -> 컴파일(javac) -> 클래스 이름.class(바이트 코드 파일)
- 소스 파일당 하나의 클래스를 선언하는 것이 관례
여러 개의 클래스를 선언하는 경우 선언한 개수만큼 바이트코드 파일이 생성
(단, 소스 파일 이름과 동일한 클래스만 public으로 선언 가능/ public은 최대 하나만 선언 가능)
main()메소드 : Startup/Entry point
main()메소드 수행주체 : JVM의 "main" 스레드가 수행시킨다.
Q. 객체 파괴가 가능한가?
A. 개발자는 제어할 수 없으며, JVM Thread 중 가비지 컬렉터 역할을 하는 Finalizer Thread가 파괴할 수 있다.
- 매개변수의 타입, 개수, 순서가 다른 생성자 여러 개 선언하는 것
- 생성자가 다양해야 하는 이유? 객체를 생성할 때 외부 값으로 객체를 초기화해야하며
외부값이 어떤 타입으로 몇 개가 제공될지 모르기 때문에 다양화
- 클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것
- 하나의 메소드의 기능으로 다양한 매개값을 받기 위해 매개변수의 타입, 개수, 순서를 다르게 선언하는 것
(이때, 리턴타입은 오버로딩의 조건과 무관하다!!)
JAVA. OOP - 객체지향프로그래밍 (0) | 2021.05.23 |
---|---|
JAVA. 자바 메모리 구조 - JVM이란? (0) | 2021.05.22 |
JAVA 5. 참조타입과 참조변수, new 연산자 (0) | 2021.05.21 |
JAVA 4-2. 제어문 : 반복문(for문, while문, do-while문), break문, continue문 (0) | 2021.05.20 |
JAVA 4-1. 제어문 : 조건문(if문, switch문) (0) | 2021.05.20 |