#17 객체 지향 언어(OOP) 2
※ 시작하기 앞서 java study 카테고리 자료는 YOUTUBE에 남궁성 강사님의 자바의 정석 영상을 가지고
공부한 내용을 정리한 것이며 상업적 목적은 전혀 없음을 알립니다.
객체 배열
객체 배열 == 참조 변수 배열
Tv tv1, tv2, tv3; => Tv [] tvArr = new Tv [3];
Tv [] tvArr = new Tv [3]; // 길이가 3인 Tv타입의 참조 변수 배열
// 객체를 생성해서 배열의 각 요소에 저장
tvArr [0] = new Tv();
tvArr [1] = new Tv();
tvArr [2] = new Tv();
Tv [] tvArr = {new Tv(), new Tv(), new Tv()}; // 위 문장을 이렇게 간단하게 쓸 수 있다.
클래스의 정의
클래스
1. 설계도
2. 데이터 + 함수
3. 사용자의 정의 타입
클래스 == 데이터 + 함수
변수 , 배열 , 구조체
1. 변수 하나의 데이터를 저장할 수 있는 공간
2. 배열 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간
3. 구조체 서로 관련된 여러 데이터(종류 관계 x)를 하나로 저장할 수 있는 공간
4. 클래스 데이터와 함수의 결합(구조체 + 함수)
클래스
사용자 정의 타입 - 원하는 타입을 직접 만들 수 있다.
아래 그림처럼 서로 다른 변수를 묶어 클래스로 정의하면 객체지향적 언어로 간결하게 적을 수 있다.

class Time { // 세개의 변수를 묶어서 Time이란 클래스를 정의
int hour;
int minute;
int second;
}
Time t = new Time(); // 객체를 생성
Time t1 = new Time(); // 참조변수에 Time객체 주소를 저장
Time t2 = new Time();
Time t3 = new Time();
Time[] t = new Time[3]; // 객체 배열로 바꿔줄수 있다.
t[0] = new Time();
t[1] = new Time();
t[2] = new Time();
선언 위치에 따른 변수의 종류
class Variables
클래스 영역 - iv , cv(static + iv)
선언문만 가능 System.out.println();같은 일반 문장은 못 들어간다.
iv는 객체를 생성했을 때 만들어진다. 객체 = iv를 묶어 놓은 것
cv는 객체 생성을 안 해도 된다.
메서드 영역 - lv(지역변수)
메서드 종료 시 자동 제거
클래스 변수 인스턴스 변수
iv (인스턴스 변수) - 개별적인 변수는 iv
cv (클래스 변수) - 공통적인 변수는 cv
class Card {
String kind; // 무늬
int number; // 숫자
static int width = 100; // 폭
static int height = 200; // 높이
}
// 객체 사용
Card c = new Card(); //객체 생성
c.kind = "heart"; //iv
c.number = 5;
Card.width = 200; //cv
Card.height = 300; //참조변수를 쓰는것도 가능은 하지만 클래스 이름을 붙이는걸 선호한다.