클래스: 객체를 정의해 놓은 것 / 객체를 생성하는데 사용
객체 = 속성(변수) + 기능(메서드)
클래스명 변수명;
* 클래스의 객체를 참조하기 위한 참조변수를 선언
변수명 = new 클래스명;
* 생성된 객체의 주소를 참조변수에 저장
객체 생성 방법
* Tv t; -> Tv 클래스 타입의 참조변수 t를 선언
* t = new Tv(); -> Tv 인스턴스를 생성한 후, 생성된 Tv인스턴스의 주소를 t에 저장
객체 배열 == 참조변수 배열
* Tv[] tvArr = new Tv[3];
여러 개의 객체를 담을 수 있는 배열
클래스 == 데이터 + 함수
클래스의 탄생 과정
1. 변수: 하나의 데이터를 저장할 수 있는 공간
2. 배열: 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간
3. 구조체: 서로 연관된 여러 데이터(종류 관계 X)를 하나로 저장할 수 있는 공간
4. 클래스: 데이터와 함수의 결합(구조체 + 함수)
클래스 == 사용자 정의 타입 -> 원하는 타입을 직접 만들 수 있다.
클래스 영역: 클래스 변수
클래스 영역: 인스턴스 변수
메서드 영역: 지역 변수
반환타입 메서드이름(타입 변수명, 타입 변수명, ...) // (선언부)
{
(구현부) // 메서드가 호출되면 수행할 코드
}
장점
작성
값을 입력 받아서 처리하고, 결과를 반환
실행 중인 메서드를 종료하고 호출한 곳으로 되돌아간다.
메서드 수행에 필요한 메모리가 제공되는 공간
메서드가 호출되면 호출 스택에 메모리가 할당, 종료되면 해제
스택(stack): 밑이 막힌 상자. 위에 차곡차곡 쌓인다.
기본형 매개변수 : 변수의 값을 읽기만 할 수 있다.'
객체 생성 없이 '클래스이름.메서드이름()'으로 호출
인스턴스 멤버(인스턴스 변수, 인스턴스 메서드)와 관련없는 작업을 하는 메서드
메서드 내에서 인스턴스 변수 사용 불가
인스턴스를 생성한 후, '참조변수.메서드이름()'으로 호출
인스턴스 멤버(인스턴스 변수, 인스턴스 메서드)와 관련한 작업을 하는 메서드
메서드 내에서 인스턴스 변수 사용 가능
한 클래스 안에 같은 이름의 메서드를 여러개 정의하는 것
성립조건
1. 메서드 이름이 같아야한다.
2. 매개변수의 개수 or 타입, 위치가 달라야한다.
3. 반환타입에는 영향 받지 않는다.
사용목적
인스턴스가 생성될때마다 호출되는 '인스턴스 초기화 메서드'
생성 조건
기본생성자
this
this()
*수동 / 자동 초기화
*멤버 변수의 초기화