코딩 기록들
객체지향 프로그래밍 1. 클래스, 필드 본문
객체
- 자신의 속성을 가지고있으며 식별 가능한 것
- 속성(=필드) + 동작(=메소드) 로 구성됨
- 객체들 사이의 상호작용 = 메소드
- 객체가 다른객체의 기능을 이용하는것 = 메소드호출
[ 메소드 호출 형태 ]
리턴값 = 객체.메소드(매개값1, 매개값2,..);
객체와 클래스
- 객체는 설계도(=클래스)를 바탕으로 만들어짐
- 클래스 : 객체생성위한 필드&메소드가 정의되어있음
- 클래스로부터 만들어진 객체 = 클래스의 '인스턴스'
객체생성과 클래스 변수
- 클래스로부터 객체를 생성하려면 : new연선자 사용
new 클래스();
- new =클래스로부터 객체를 생성시키는 연산자
- new뒤에는 생성자(= 클래스() 형태)가 옴
- new연산자로 생성된 객체 = 메모리 '힙'영역에 생성됨
클래스의 구성멤버
1. 필드
- 객체의 고유 데이터, 부품객체, 상태정보를 저장하는 곳
- 객체가 소멸되지 않는 한 객체와 함께 존재함
2. 생성자
- new연산자로 호출되는 중괄호{}블록
- 객체생성시 초기화를 담당함
- 클래스이름으로 되어있고, 리턴타입이 없음
3. 메소드
객체의 동작에 해당하는 중괄호{}블록
필드
- 객체의 고유 데이터, 부품, 현재상태 데이터를 저장하는 곳
필드 선언
- 클래스 중괄호 블록 어디서든 존재할수있음
- 생성자와 메소드 중괄호 블록 내부에는 선언될수 없음(=로컬변수임)
[선언형태]
타입 필드 [=초기값];
- 초기값이 지정되지 않은 필드는 객체 생성시 자동으로 기본 초기값으로 설정됨
필드 사용
- 클래스 외부에서 사용할경우, 우선적으로 클래스로부터 객체를 생성한 뒤 필드를 사용해야함
외부클래스에서 Car클래스의 speed필드값을 사용하고 싶을때
// 1. Car객체 우선 생성
Car myCar = new Car();
// 2. myCar변수가 Car객체 참조하여 speed필드에 접근(도트연산자(.)이용하여 접근)
myCar.speed = 60;