5 public class Sum Test public static void
5장. 객체지향 개념 public class Sum. Test { public static void main(String a 1[]) { int a, b, sum; a = Integer. parse. Int(a 1[0]); b = Integer. parse. Int(a 1[1]); sum = a + b ; // 두 수를 더하는 부분입니다 System. out. println("두수의 "); System. out. println("두수의 합은 " + sum + "입니다"); } } 1
2 클래스와 객체 2 -1 클래스와 객체의 구성 l 실습예제 자바로 작성된 클래스의 예 Avg. Test. java 01 02 03 04 05 06 07 08 09 class Avg { String name; 속성 int avg; public String average(int kor, int eng) { avg = (kor+eng)/2; return name+avg; } } 5장. 객체지향 개념 기능 12
2 클래스와 객체 2 -1 클래스와 객체의 구성 l 실습예제 Avg. Test. java 01 02 03 04 05 06 07 08 09 10 11 12 13 public class Avg. Test { public static void main(String[] args) { student 1 객체 생성 Avg student 1 = new Avg(); Avg student 2 = new Avg(); student 2 객체 생성 student 1. name = "김철수"; 생성된 객체의 속성에 서로 다른 값을 저장 student 2. name = "김영희"; String st 1_avg = student 1. average(70, 80); String st 2_avg = student 2. average(80, 90); System. out. println(st 1_avg); System. out. println(st 2_avg); } } 5장. 객체지향 개념 14
3 상속(Inheritance) l 실습예제 Avg. Test 1. java 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 class Avg 1 { String name; int avg; public String average(int kor, int eng) { avg = (kor+eng)/2; return name+avg; } } class Avg 1 Total extends Avg 1 { public int total(int kor, int eng) { int score = kor + eng; return score; } } 5장. 객체지향 개념 상위 클래스 정의 상위 클래스를 상속받아 하위 클래스 정의 18
3 상속(Inheritance) l 실습예제 Avg. Test 1. java 17 18 19 20 21 22 23 24 25 26 27 28 29 30 public class Avg. Test 1 { public static void main(String[] args) { Avg 1 Total student 1 = new Avg 1 Total(); Avg 1 Total 객체 생성 Avg 1 Total student 2 = new Avg 1 Total(); student 1. name = "김철수"; 상속받은 속성값 설정 student 2. name = "김영희"; String st 1_avg = student 1. average(70, 80); 생성된 객체에서 정의된 메소드 호출 String st 2_avg = student 2. average(80, 90); int st 1_total = student 1. total(70, 80); int st 2_total = student 2. total(80, 90); System. out. println(st 1_avg+" 총점=" + st 1_total); System. out. println(st 2_avg+" 총점=" + st 2_total); } } 5장. 객체지향 개념 19
4 캡슐화(Encapsulation) l 실습예제 Avg. Test 2. java 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 class Avg 2 { public String name; 공개되는 속성 private int avg; 공개되지 않는 속성 public String average(int kor, int eng) { avg = (kor+eng)/2; return name+avg; } } public class Avg. Test 2 { public static void main(String[] args) { Avg 2 student 1 = new Avg 2(); . . student 1. name = "김철수"; 공개된 속성에 접근. 오류 발생하지 않음 공개되지 않은 속성에 접근. 오류 발생 student 1. avg = 100; . . } } 5장. 객체지향 개념 25
5 메시지(Message) l 실습예제 Avg. Test 1. java 01 02 03 04 05 06 07 08 09 10 11 12 public class Avg. Test 1 { public static void main(String[] args) { Avg 1 Total student 1 = new Avg 1 Total(); Avg 1 Total student 2 = new Avg 1 Total(); . . String st 1_avg = student 1. average(70, 80); String st 2_avg = student 2. average(80, 90); int st 1_total = student 1. total(70, 80); int st 2_total = student 2. total(80, 90); . . } } 5장. 객체지향 개념 객체의 메소드 호출 메시지 28
6 다형성(Polymorphism) l 실습예제 Avg. Test 3. java 01 02 03 04 05 06 07 08 09 10 11 12 13 14 같은 이름을 가진 메소드 선언 class Avg 3 { (메소드 오버로딩) public String name; private int avg; public String average(int kor, int eng) { 매개변수가 2개일 때 수행 avg = (kor+eng)/2; return name+" 두 과목 평균 : "+avg; } public String average(int kor, int eng, int mat) { 같은 이름을 가진 메소드 선언 avg = (kor+eng+mat)/3; (메소드 오버로딩) return name+" 세 과목 평균 : "+avg; } } 5장. 객체지향 개념 매개변수가 3개일 때 수행 30
6 다형성(Polymorphism) l 실습예제 Avg. Test 3. java 15 16 17 18 19 20 21 22 23 24 25 26 public class Avg. Test 3 { public static void main(String[] args) { Avg 3 student 1 = new Avg 3(); Avg 3 student 2 = new Avg 3(); student 1. name = "김철수"; student 2. name = "김영희"; String st 1_avg = student 1. average(70, 80); String st 2_avg = student 2. average(80, 90, 100); System. out. println(st 1_avg); System. out. println(st 2_avg); } } 5장. 객체지향 개념 다른 객체, 동일 메시지 31
- Slides: 35