클래스, Class
1. 클래스, Class
객체 = 데이터(변수) + 행동(메서드)
요구사항] 지도 > 우리집 > 좌표 저장
Case 1.
> 구조를 물리적으로 보장 안함
- 구조적 문제 > 규칙(X), 조작 불편
우리집 좌표
int x = 100;
int y = 200;
System.out.printf("우리집은 [%d, %d]에 위치합니다.\n", x, y);
마트 좌표
int x2 = 300;
int y2 = 400;
System.out.printf("마트는 [%d, %d]에 위치합니다.\n", x2, y2);
Case 2.
우리집 좌표
System.out.printf("우리집은 [%d, %d]에 위치합니다.\n", a1[0], a1[1]);
마트 좌표
int[] a2 = { 300, 400 };
System.out.printf("마트는 [%d, %d]에 위치합니다.\n", a2[0], a2[1]);
Case 3.
설계한 클래스로부터 객체(인스턴스)를 만드는 방법
붕어빵 틀을 사용해서 붕어빵을 1개 만들었다.
Point p1 = new Point(); // 클래스는 변수를 만들 수 있다. Class는 자료형
배열하고 동일
Class는 내가 만든 자료형 , Point 라고 명명함
Point 는 HEAP 에 있으므로, Point x, y 변수의 주소값을 위해, p1 에 먼저 간다.
p1.x = 100;
p1.y = 200;
System.out.printf("우리집은 [%d, %d]에 위치합니다.\n", p1.x, p1.y);
마트 좌표
Point p2 = new Point();
p2.x = 300;
p2.y = 400;
System.out.printf("마트는 [%d, %d]에 위치합니다.\n", p2.x, p2.y);
모니터
Size monitor = new Size();
monitor.name = "LG 모니터";
monitor.width = 1920;
monitor.height = 1080;
System.out.println(monitor.name + " : " + monitor.width + "x" + monitor.height);
Score s1 = new Score();
s1.name = "홍길동";
s1.kor = 100;
s1.eng = 90;
s1.math = 80;
클래스 선언하기(= 붕어빵 틀 만들기)
_
class Point {
구현부
멤버 변수 (지역 변수와 목적이 다르다)
public int x; // 접근지정자
public int y; // 좌표
}_
class Size {
// 배열은 동일한 자료형만 만들 수 있으나, 클래스는 다양한 자료형 가능
public String name;
public int width;
public int height;
}
// 성적 클래스
class Score {
public String name; //학생명
public int kor;
public int eng;
public int math;
}