🔶 자바의정석Ch6-9~10,11~12
✔ 자바의정석Ch6-9 클래스의 정의(1)
❕ 클래스
1) 설계도
2) 데이터 + 함수
3) 사용자정의 타입
2) 클래스 == 데이터 + 함수
- 변수 : 하나의 데이터를 저장할 수 있는 공간
- 배열 : 같은 종류의 여러 데이터를 하나로 저장할 수 잇는 공간
- 구조체 : 서로 관련된 여러 데이터(종류 관계X)를 하나로 저장할 수 있는 공간
- 클래스 : 데이터와 함수의 결합 (구조체 + 함수)
✔ 자바의정석Ch6-10 클래스의 정의(2)
- 사용자 정의 타입 : 원하는 타입을 직접 만들 수 있다
- ex)
// 비객체지향 코드 int hour; int minute; int second; ↓ // 3개의 변수를 묶어 Time class를 정의 // 객체지향 코드 class Time{ int hour; int minute; int second;t } ↓ // 생성한 클래스를 객체를 만들어서 사용 Time t = new Time();
✔ 자바의정석Ch6-11 선언위치에 따른 변수의 종류
❕ 변수는 선언 위치에 따라 종류가 3가지로 나뉜다
- 클래스 영역
1) 인스턴스 변수 : 객체를 생성해야 사용가능하다
2) 클래스 변수(static변수,공유변수) : 객체생성 X -> 아무때나 사용가능하다
- 메서드 영역
3) 지역변수 
✔ 자바의정석Ch6-12 클래스 변수와 인스턴스 변수
- 인스턴스 변수 : 개별 속성
- 클래스 변수 : 공통 속성 
✔ 자바의정석Ch6-12 클래스 변수와 인스턴스 변수 예제
- 코드
package Java_Nam; public class iv_cv { public static void main(String[] args) { System.out.println("Card.width = " + Card.width); // 클래스 변수 : 객체 생성 없이 사용가능하다 System.out.println("Card.height = " + Card.height); Card c1 = new Card(); // 객체 생성 c1.kind = "Heart"; c1.number = 7; Card c2 = new Card();// 객체 생성 c2.kind = "Spade"; c2.number = 4; System.out.println("c1은 " + c1.kind + ", " + c1.number); System.out.println("c2은 " + c2.kind + ", " + c2.number); System.out.println("c1의 width와 height 를 각각 50,80으로 변경합니다" ); Card.width = 50; // 클래스 변수를 변경 Card.height = 80; System.out.println("c1은 " + c1.kind + ", " + c1.number + "이며, 크기는 (" +c1.width + ", " + c1.height + ")"); System.out.println("c2은 " + c2.kind + ", " + c2.number +"이며, 크기는 (" +c2.width + ", " + c2.height + ")"); } } class Card{ String kind; int number; static int width = 100; static int height = 250; }