[접근지정자] class 클래스명 [extends 부모클래스명] [implements 구현할인터페이스명,...] {}// 접근지정자public - 패키지 외부에서 클래스 사용가능default(package) - 패키지 내부에서만 클래스 사용가능final - 상속 불가(오버라이드 금지)static - nested class 만들 때abstract - abstract class 만들 때(상속 목적)// abstract와 final은 같이 사용할 수 없다(error!)//클래스명은 대문자로 시작
클래스 작성 및 사용
대상선정
객체모델링
클래스 구현
객체생성
method 호출
1~2는 PM 또는 아키텍처가 수행
3~5는 개발자가 수행
클래스 다이어그램
클래스 구현 전에 작성
클래스 setter method, getter method
setter method
instance 변수에 값을 설정하는 일
값에 대한 검증을 수행할 수 있기 때문에 setter를 사용
접근지정자는 public, 반환형은 없다
매개변수가 반드시 존재
method명은 set을 접두어로 변수와 결합하여 정의
getter method
instance 변수에 설정된 값을 받아가는 일
접근지정자 public, 반환형 있음
매개변수는 없음
method명은 get을 접두어로 변수와 결합하여 정의
클래스 작성 예시
대상 선정
마카펜
검은마카펜, 파란마카펜, 빨간마카펜
객체 모델링(추상화)
추상화란 대상의 공통 특징을 뽑는 것
마카펜
명사적 특징
색
몸체
뚜껑
동사적 특징
쓴다
클래스(설계도) 작성
// Marker Classpublic class Marker { // 명사적 특징(변수) private String color; // 마카펜의 색 private int body; // 마카펜의 몸체의 갯수 private int cap; // 마카펜의 뚜껑의 갯수 // setter public void setColor(String color) { // 인스턴스변수에 설정될 값에 대한 검증 수행 if (color.equals("빨간색") || color.equals("파란색")) this.color = color; else this.color = "검은색"; } public void setBody(int body) { this.body = body; } public void setCap(int cap) { this.cap = cap; } // getter public String getColor() { return color; } public int getBody() { return body; } public int getCap() { return cap; } // 동사적 특징(메소드) String write(String msg) { return color+"인 마카펜으로 칠판에 \""+msg+"\" 를 쓴다"; }}
객체화, 사용
// UseMarker Classpublic class UseMarker { public static void main(String[] args) { // 검은색 마카펜 1개 생성 Marker black = new Marker(); black.setColor("검은색"); black.setCap(1); black.setBody(1); System.out.printf("생성된 마카펜 색[%s], 뚜껑[%d], 몸체[%d]" ,black.getColor(), black.getCap(), black.getBody()); System.out.println(); // 생성된 객체의 사용 System.out.println(black.write("안녕하세요")); // 빨간색 마카펜 객체를 5개 생성 후 사용 Marker red = new Marker(); red.setColor("빨간색"); red.setBody(5); red.setCap(5); System.out.printf("생성된 마카펜 색[%s], 뚜껑[%d], 몸체[%d]" ,red.getColor(), red.getCap(), red.getBody()); }}