클래스 (class)
클래스 객체를 만들기 전에 속성(상태)와 기능을 정의하는 설계도입니다.
현실 세상에 존재하는 대부분의 것들을 클래스로 표현이 가능합니다.
객체 (Object) new 키워드
실제 메모리에 올라간 녀석 (프로그램 세상에 존재하게 됨)
객체를 설계할 때 클래스 안에서 정의하는 변수를 멤버 변수(member variale)이라고 하고
main 함수 안에서 사용하는 변수를 지역 변수(local variable)이라고 한다.
사자 클래스를 정의 하였다 ㅡㅡ> 사자는 이 세계에 존재할 수 있는 객체(Object)입니다.
하지만 동물 클래스를 설계하고 이 세계에 뿌리내리게 하는 것은 불가능합니다.
왜냐하면 동물은 이 세계에 존재할 수 없는 것이기 때문입니다.
동물은 사자, 호랑이, 기린 같은 것들을 어우를 수 있는 포괄적인 개념입니다.
이런 것들은 실제 세상에 존재할 수 없기 때문에 객체가 될 수 없습니다. 동물 클래스는 추상적인 것입니다.
프로그래밍 세상에서 객체란 메모리(프로그래밍 세상)에 로드할 수 있는 것을 말하며 객체가 될 수 없다는 것은 메모리(프로그래밍 세상)에 로드할 수 없다는 뜻입니다.
일단 참고로 메모리 할당이 어떻게 되는지 알아보자
스택 (Stack) 과 힙(Heap)
stack 메모리 (정적 메모리 영역)는 함수가 호출될 때 지역변수, 매개변수가 사용하는 메모리이고 LIFO(Last-in First-Out / 후입선출) 로 되어있다. 따라서 가장 늦게 저장된 데이터가 가장 먼저 인출된다.
후입선출(LIFO) ↓
heap 메모리 (동적 메모리 영역)는 모든 Object 타입(Integer, String)등이 생성된다. 그리고 Heap 영역에 할당 된 Object 타입의 참조를 위한 값들이 Stack 영역에 할당된다
참조 타입과 new 키워드와 점연산자
예시로 봐보자!!
메소드
1. 메소드란 입력 값에 따른 결과를 반환하는 코드 묶음
2. 간단한 호출으로 여러 줄의 코드를 수행할 수 있다.
함수
● 하나의 기능을 수행하는 일련의 코드
● 구현된(정의된) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 ★제어가 반환됨
● 함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어 사용될 수 있음
함수 호출 방식 = 멤버 함수(매개변수); 이다
일단 예시를 봐보자
메소드 영역에는 두가지 Void 와 Return 이 있다.
Return 은 반환 해주는 함수 안에 쓰이고
void는 아무것도 반환하지 않는 함수를 나타낼때 쓴다
'JAVA' 카테고리의 다른 글
JAVA - 접근 제어 방식 / getter 와 setter (0) | 2023.08.01 |
---|---|
JAVA - 인스턴스, 생성자 (0) | 2023.07.31 |
JAVA - Break문 vs Continue문 (0) | 2023.07.27 |
JAVA - 조건문(if), 반복문(for, while) (0) | 2023.07.27 |
JAVA - 연산자 (0) | 2023.07.27 |