다형성
예제 8월 28일 강사, 수강생 및 남, 녀 성비 계산 (다형성과 instanceof 연산의 활용)
2009. 8. 28. 14:49
package net.jeongsam.petshop; import java.util.ArrayList; import java.util.Random; class CountTest { /** * @param args */ public static void main(String[] args) { int maleTeachers = 0; int femaleTeachers = 0; int maleStudents = 0; int femaleStudents = 0; Student s = null; Teacher t = null; ArrayListpersons = new ArrayList (); for (int i = 0; i < 500; i++) { switch (new Random().nextInt(5)) { case 0: case 1: case 2: case 3: s = new Student(); s.setGender((new Random().nextInt(2) == 0) ? 'M' : 'F'); persons.add(s); break; default: t = new Teacher(); t.setGender((new Random().nextInt(2) == 0) ? 'M' : 'F'); persons.add(t); break; } } for (Person p : persons) { if (p instanceof Teacher && p.getGender() == 'M') { maleTeachers++; } else if (p instanceof Teacher && p.getGender() == 'F') { femaleTeachers++; } else if (p instanceof Student && p.getGender() == 'M') { maleStudents++; } else { femaleStudents++; } } System.out.println("남자 강사의 수 : " + maleTeachers + "명"); System.out.println("여자 강사의 수 : " + femaleTeachers + "명"); System.out.println("남자 수강생의 수 : " + maleStudents + "명"); System.out.println("여자 수강생의 수 : " + femaleStudents + "명"); } }