- 정의 : 클래스란 객체를 정의해 놓은 것이다.
- 용도 : 클래스는 객체를 생성하는데 사용된다.
- 데이터와 함수의 결합(기능[method] + 속성[variable])
- 구조체와 다른점 : 구조체는 서로 관련된 여러 데이터를 종류에 관계없이 하나의 집합으로 저장하는 공간이지만 클래스는 기능을 수행하는 method의 기능도 수행한다.
객체의 정의
- 정의 : 실제로 존재하는 것, 사물 또는 개념
- 용도 : 객체가 가지고 있는 기능과 속성에 따름
- 속성(property) : 멤버변수, 특성, 필드, 상태
- 기능(function) : 메서드, 행위, 함수
- 인스턴스와 객체는 같은 의미이다.
변수
- 종류 : 클래스 변수, 인스턴스 변수, 지역 변수
- 클래스 변수
- 선언위치 : 클래스 변수
- 클래스가 메모리에 올라갈 때 생성된다.
- static, coast
- 인스턴스 변수
- 선언위치 : 클래스 변수
- 인스턴스가 생성될 때 생성된다.
- 지역 변수
- 선언위치 : 지역 변수가 생성된 메서드, 생성자 등의 영역
- 선언된 위치가 수행될 때, 수행 후 소멸한다.
메서드
- 하나의 메서드는 한 가지 기능만 수행하도록 작성하는 것이 좋다.
- 반복적으로 수행되어야 하는 여러 문장을 하나의 메서드로 정의해 놓으면 좋다.
- 관련된 여러 문장을 하나의 메서드로 만들어 놓는 것이 좋다
리턴타입 메서드이름(타입 변수명, ... ...){ 코드 }
메서드가 종료하는 2가지 종류
- 메서드의 블럭 {} 내의 마지막 까지 수행하였을 경우
- 메서드의 블럭 {} 내에 있는 문자열 수행 중 return문을 만났을 경우
- 반환값이 없는 경우 ( 리턴타입이 void 인 경우)
- return;
- return만 써주면 된다.
- 반환값이 있는 경우 ( 리턴타입이 void가 아닌 경우)
int add(int a, int b){ int c = a + b; return c; }
- 참조변수.메서드이름();
- 참조변수.메서드 이름(값1, 값2);
- 같은 클래스 내의 메서드 끼리는 참조변수를 사용하지 않는다.
- 서로 호출이 가능하다
- static 메서드는 같은 클래스 내의 인스턴스를 호출 할수 없다.