2023. 3. 13. 23:23ㆍJava/객체지향
1. 클래스와 객체
1) 클래스
- 클래스란 객체를 정의해 놓은 것, 객체의 설계도 또는 틀
- 클래스는 객체를 만들어 내기 위한 Type이다
2) 객체
- 실제로 존재하는 것, 클래스에 정의된 대로 메모리에 올라가 구체적인 값이 들어가 있는 상태
- 클래스를 한번 잘 만들어 놓으면 객체를 생성할 때마다 고민할 필요없이 클래스로부터 객체를 생성하기만 하면 된다.
2. 객체와 인스턴스
- 클래스로부터 객체를 만드는 과정을 '클래스의 인스턴스화'라고 하며,
어떤 클래스로부터 만들어진 객체를 '그 클래스의 인스턴스'라고 한다.
- 클래스 ---(인스턴스화)---> 인스턴스(객체)
- 객체와 인스턴스는 같은 의미이지만 객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖고있고,
인스턴스는 어떤 클래스로부터 만들어진 것인지를 강조하는 보다 구체적인 의미를 갖고있다.
- 예: '책상은 객체다', '책상은 책상 클래스의 인스턴스이다'
3. 객체의 구성요소 (속성과 기능)
- 객체 = 속성 + 기능
- 속성: 멤버변수, 특성, 필드, 상태 -> 주로 명사형태
- 기능: 메서드, 함수, 행위 -> 주로 동사형태
4. 클래스의 또 다른 정의
- 객체지향이론 관점의 정의: 객체를 생성하기 위한 틀
- 프로그래밍적인 관점의 정의
1) 데이터와 함수의 결합
클래스 = 변수 + 함수
변수(데이터)와 함수를 하나의 클래스에서 정의하여 서로 관계가 깊은 변수와 함수들을 함께 다룰 수 있게 한다.
2) 사용자 정의 타입
프로그래밍 언어에서 제공하는 자료형 외 프로그래머가 서로 관련된 변수들을 묶어서 하나의 타입으로 새로 추가하는 것
5. 인스턴스의 생성과 사용
- 인스턴스 생성
클래스명 변수명; //클래스의 객체를 참조하기 위해 참조변수를 선언
변수명 = new 클래스명(); //클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장
클래스명 변수명 = new 클래스명();
- 인스턴스 사용
인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치해야한다.
변수명.멤버변수;
변수명.메서드();
6. 객체 배열
- 많은 수의 객체를 다뤄야 할 때, 배열로 다루면 편리함.
- Tv tv1, tv2, tv3; --> Tv[] tvArr = new Tv[3];
7. Test Class
- main을 갖는 실행 클래스 (객체X)
- 역할
1) 객체 생성 : 메모리에 클래스를 load
2) 접근
멤버변수(필드): 값 할당 = 초기화
메소드: 호출
- JVM 실행 -> main() 찾음 -> 같은 디렉토리(패키지)에 정의된 클래스 찾기 -> 없으면 import 확인해서 찾아감