문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| notepad:kamajaki0601 [2012/04/05 10:47] – kamajaki0601 | notepad:kamajaki0601 [2025/10/03 22:30] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| - | ==== 객체지향 설계 | + | ==== 객체지향 설계 ==== |
| ** 4/5일 목 ** | ** 4/5일 목 ** | ||
| 줄 90: | 줄 91: | ||
| => 거실에서 TV를 시청하던 여러분은 공부하기 위해서 \\ | => 거실에서 TV를 시청하던 여러분은 공부하기 위해서 \\ | ||
| TV를 끄고 방으로 들어감 \\ | TV를 끄고 방으로 들어감 \\ | ||
| + | |||
| + | TvTest.java | ||
| class Tv { | class Tv { | ||
| - | String color; | + | String color; |
| - | boolean power; | + | boolean power; |
| - | int channel; | + | int channel; |
| - | void power() { power= !power; } | + | |
| - | void channelUp { ||channel; } | + | void power() { power= !power; } |
| - | void channelDown() { --channel;} | + | void channelUp { ||channel; } |
| + | void channelDown() { --channel;} | ||
| } | } | ||
| + | |||
| class TvTest { | class TvTest { | ||
| - | public static void main(String args[]) { | + | public static void main(String args[]) { |
| + | 각자작성 \\ | ||
| + | 안방tv는 켜진 상태, 거실tv는 꺼진 상태임을 확인하는 코드 작성 \\ | ||
| } | } | ||
| } | } | ||
| + | |||
| + | => 출력결과 \\ | ||
| + | |||
| + | (4) AvgTest1.java \\ | ||
| + | |||
| + | class Avg1 { | ||
| + | String name; | ||
| + | int avg; | ||
| + | public String average(int kor, int eng) | ||
| + | { | ||
| + | avg = (kor+eng)/ | ||
| + | return name+avg; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | class Avg1Total extends Avg1 { | ||
| + | Avg1Total 클래스에 Avg1 클래스의 속성 및 기능, 즉 변수 및 메소드를 상속함 \\ | ||
| + | java에서는 다중상속을 허용(c++)하지 않음 \\ | ||
| + | |||
| + | ex) | ||
| + | 하위클래스 extends 상위클래스, | ||
| + | 하위 클래스 extends 상위클래스 (O) | ||
| + | |||
| + | |||
| + | public int total(int kor, int eng) | ||
| + | { | ||
| + | int score = kor + eng; | ||
| + | return score; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | Avg1Total의 객체가 생성되었을 경우 사용 가능한 것 \\ | ||
| + | => name, avg (상위클래스의 변수들) \\ | ||
| + | => Average(int kor, int eng) (상위클래스의 메소드) \\ | ||
| + | => total(int kor, int eng) \\ | ||
| + | |||
| + | public class AvgTest1 { | ||
| + | public static void main(String[] args) { | ||
| + | Avg1Total student1 = new Avg1Total(); | ||
| + | Avg1Total student2 = new Avg1Total(); | ||
| + | student1.name = " | ||
| + | student2.name = " | ||
| + | String st1_avg = student1.average(70, | ||
| + | String st2_avg = student2.average(80, | ||
| + | int st1_total = student1.total(70, | ||
| + | int st2_total = student2.total(80, | ||
| + | System.out.println(st1_avg+" | ||
| + | System.out.println(st2_avg+" | ||
| + | } | ||
| + | } | ||
| + | |||
| + | (4) AvgTest2.java \\ | ||
| + | |||
| + | class Avg2 { | ||
| + | public String name; | ||
| + | private int avg; | ||
| + | |||
| + | 정보 은폐(외부 노출 안 되게 함) \\ | ||
| + | |||
| + | public String average(int kor, int eng) | ||
| + | { | ||
| + | avg = (kor+eng)/ | ||
| + | return name+avg; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | public class AvgTest2 { | ||
| + | public static void main(String[] args) { | ||
| + | Avg2 student1 = new Avg2(); | ||
| + | student1.name = " | ||
| + | student1.avg = 100; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | 에러 => 복사/ | ||
| + | 애러 나오는 이유 작성 \\ | ||
| + | 에러 나오지 않도록 수정한 후 출력 결과 나올 수 있도록 프로그램 수정(이름 평균 출력) \\ | ||
| + | |||
| + | 접근 제어 | ||
| + | 접근 상세자에게 허용된 접근 단계 \\ | ||
| + | |||
| + | ^ 상세자 |^클레스 |^서브클래스 |^패키지 |^그외 |^ | ||
| + | ^ private | ||
| + | ^ protected | ||
| + | ^ public | ||
| + | ^ package | ||
| + | |||
| + | =>같은 패치지내에서 클래스와 서브 클래스의 동작 의미파악 \\ | ||
| + | =>다른 패키지에서 클래스와 서브 클래스의 동작 \\ | ||
| + | |||
| + | 다른 클래스 | ||
| + | |||
| + | 주소 : moham@paran.com \\ | ||
| + | 제목 : 객체-본인이름-0405 \\ | ||
| + | 내용 : 위의 내용 붙여넣기 \\ | ||
| + | 과제 : 오늘 자정(24시) 이후 블로그에서 확인(A4 자필) \\ | ||
| + | |||
| + | 다음 주.. 캡슐화부터 다시 설명(정보 은폐 포함) | ||