0. 하드웨어의 소프트웨어 화
ex) JVM
1. 객체지향 언어의 특징
- 재사용성(클래스화)
- 유지보수(코드간의 관계)
- 신뢰성(제어자, 메서드, 중복제거)
2. 클래스, 객체
- 객체 : 멤버들의 집합, 변수들의 집합, 인스턴스 변수의 집합
- 클래스 : 연관된 데이터와 함수들의 모임, 구조체+함수, 사용자 정의 타입
(변수 > 배열 > 구조체 > 클래스)
3. 변수, 메서드
- 변수 (선언위치에 따른)
- 멤버변수(클래스영역)
- 클래스 변수(static변수, 공유변수, 안변하는 속성)
: ※같은클래스의 모든 객체들이 같은 값을 공유하는 변수. 그래서 변경도 가능 하나 모든 객체의 값이 변경된다.
: 클래스가 메모리에 로딩시 생성
: 언제든 사용 가능(클래스명.클래스변수명)
- 인스턴스 변수
: 인스턴스마다 다른 값 저장
: 객체 생성시 생성
: 객체 생성후 사용 가능(참조변수명.인스턴스변수명)
- 지역변수(메서드영역)
- 메서드
- 명령문의 집합. 값을 입력받아 처리하고 결과를 반환함 (둘다 없을수도 있음)
- 주요 작업 단위로 작성하여 코드 관리가 용이
- 리턴타입 메서드이름 (매개변수){ } 로 정의
- 리턴문은 변수 처리를 하여 호출 횟수를 줄이는게 좋다.
4. JVM의 메모리 구조 - 호출스택(동전통)
- 맨 위에 메서드가 현재 실행중인 메서드다.
- 예외처리 시 잘 알아둬야함!!
5. 매개변수
기본형(primitive) 매개변수 - 읽기만
참조형(reference) 매개변수 - 읽고 변경 가능
기본형 매개변수 예제
(자바의 정석 남궁성님 객체지향 강의중 캡쳐)
6. 재귀호출
매서드 내에서 자기 자신을 반복적으로 호출하는 것
반복문으로 바꿀 수 있으며 반복문 보다 성능이 나쁘나 이해하기 쉽고 간결한 코드를 작성할수 있다.
팩토리얼, 제곱, 트리운행, 폴더목록 표시등에 사용
+ 팩토리얼 알고리즘 이해하기
7. 클래스 매서드 인스턴스 매서드
클래스 매서드는 인스턴스 메서드 사용 안하면 static붙여서 쓴다 . 인스턴스 변수나 인스턴스 메서드 사용 관련 없을때