java 상속을 활용한 기능 구현
1. 도형(원·사각형) 정보 계산 프로그램
구성 클래스 및 역할
Point
-
필드
-
x : int— X 좌표 -
y : int— Y 좌표 -
생성자
-
Point()— 기본 생성자 -
Point(int x, int y)— 좌표 초기화 생성자 -
메서드
-
각 필드별 getter / setter 직접 구현
-
toString(): String→"x, y"형식의 문자열 반환
Circle
-
상속
-
Point
-
필드
-
radius : int— 반지름 -
생성자
-
Circle()— 기본 생성자 -
Circle(int x, int y, int radius)— 좌표·반지름 초기화 생성자 -
메서드
-
각 필드별 getter / setter 직접 구현
-
toString(): String→"x, y, radius"형식의 문자열 반환
Rectangle
-
상속
-
Point
-
필드
-
width : int— 너비 -
height : int— 높이 -
생성자
-
Rectangle()— 기본 생성자 -
Rectangle(int x, int y, int width, int height)— 좌표·너비·높이 초기화 생성자 -
메서드
-
각 필드별 getter / setter 직접 구현
-
toString(): String→"x, y, width, height"형식의 문자열 반환
CircleController
-
필드
-
c : Circle = new Circle()— 원 객체 -
메서드
-
calcArea(int x, int y, int radius): String -
필드 초기화 후
"x, y, radius / 면적"문자열 반환 -
면적 공식:
Math.PI * radius * radius -
calcCircum(int x, int y, int radius): String -
필드 초기화 후
"x, y, radius / 둘레"문자열 반환 -
둘레 공식:
Math.PI * radius * 2
RectangleController
-
필드
-
r : Rectangle = new Rectangle()— 사각형 객체 -
메서드
-
calcArea(int x, int y, int height, int width): String -
필드 초기화 후
"x, y, height, width / 면적"문자열 반환 -
면적 공식:
width * height -
calcPerimeter(int x, int y, int height, int width): String -
필드 초기화 후
"x, y, height, width / 둘레"문자열 반환 -
둘레 공식:
2 * (width + height)
PointMenu
-
필드
-
sc : Scanner = new Scanner(System.in) -
cc : CircleController = new CircleController() -
rc : RectangleController = new RectangleController() -
메서드
-
mainMenu(): void -
메인 메뉴 출력 및 선택 처리 (1. 원, 2. 사각형, 9. 종료)
-
circleMenu(): void -
원 메뉴 출력 (1. 둘레, 2. 넓이, 9. 메인으로)
-
rectangleMenu(): void -
사각형 메뉴 출력 (1. 둘레, 2. 넓이, 9. 메인으로)
-
calcCircum(): void -
좌표·반지름 입력 →
cc.calcCircum()호출 및 출력 -
calcCircleArea(): void -
좌표·반지름 입력 →
cc.calcArea()호출 및 출력 -
calcPerimeter(): void -
좌표·너비·높이 입력 →
rc.calcPerimeter()호출 및 출력 -
calcRectArea(): void -
좌표·너비·높이 입력 →
rc.calcArea()호출 및 출력
실행 예시
===== 메뉴 =====
1. 원
2. 사각형
9. 끝내기
메뉴 번호 : 1
===== 원 메뉴 =====
1. 원 둘레
2. 원 넓이
9. 메인으로
메뉴 번호 : 1
x 좌표 : 2
y 좌표 : 4
반지름 : 1
둘레 : 2, 4, 1 / 6.283185307179586
===== 원 메뉴 =====
1. 원 둘레
2. 원 넓이
9. 메인으로
메뉴 번호 : 2
x 좌표 : 2
y 좌표 : 4
반지름 : 1
면적 : 2, 4, 1 / 3.141592653589793
===== 메뉴 =====
1. 원
2. 사각형
9. 끝내기
메뉴 번호 : 2
===== 사각형 메뉴 =====
1. 사각형 둘레
2. 사각형 넓이
9. 메인으로
메뉴 번호 : 1
x 좌표 : 2
y 좌표 : 4
높이 : 1
너비 : 3
둘레 : 2, 4, 1, 3 / 8
===== 사각형 메뉴 =====
1. 사각형 둘레
2. 사각형 넓이
9. 메인으로
메뉴 번호 : 2
x 좌표 : 2
y 좌표 : 4
높이 : 1
너비 : 3
면적 : 2, 4, 1, 3 / 3
===== 메뉴 =====
1. 원
2. 사각형
9. 끝내기
메뉴 번호 : 9
종료합니다.
2. 학생·사원 정보 관리 프로그램
구성 클래스 및 역할
Person
-
필드
-
name : String— 이름 -
age : int— 나이 -
height : double— 키 -
weight : double— 몸무게 -
생성자
-
Person()— 기본 생성자 -
Person(String name, int age, double height, double weight)— 필드 초기화 생성자 -
메서드
-
각 필드별 getter / setter 직접 구현
-
toString(): String→"name, age, height, weight"형식의 문자열 반환
Student
-
필드
-
grade : int— 학년 -
major : String— 전공 -
생성자
-
Student()— 기본 생성자 -
Student(String name, int age, double height, double weight, int grade, String major)— 필드 초기화 생성자 -
메서드
-
각 필드별 getter / setter 직접 구현
-
toString(): String→"name, age, height, weight, grade, major"형식 문자열 반환
Employee
-
필드
-
salary : int— 급여 -
dept : String— 부서 -
생성자
-
Employee()— 기본 생성자 -
Employee(String name, int age, double height, double weight, int salary, String dept)— 필드 초기화 생성자 -
메서드
-
각 필드별 getter / setter 직접 구현
-
toString(): String→"name, age, height, weight, salary, dept"형식 문자열 반환
PersonController
-
필드
-
s : Student[] = new Student[3]— 학생 객체 배열 -
e : Employee[] = new Employee[10]— 사원 객체 배열 -
메서드
-
personCount(): int[] -
학생·사원 배열에 저장된 객체 수 반환
-
insertStudent(String name, int age, double height, double weight, int grade, String major): void -
학생 객체 생성 후 배열에 저장
-
printStudent(): Student[] -
학생 배열 반환
-
insertEmployee(String name, int age, double height, double weight, int salary, String dept): void -
사원 객체 생성 후 배열에 저장
-
printEmployee(): Employee[] -
사원 배열 반환
PersonMenu
-
필드
-
sc : Scanner = new Scanner(System.in) -
pc : PersonController = new PersonController() -
메서드
-
mainMenu(): void -
전체 메뉴 출력 및 선택 처리
-
(학생 수 3명 초과 시 추가 불가, 사원 수 10명 초과 시 추가 불가)
-
studentMenu(): void -
학생 메뉴 출력 (1. 추가, 2. 보기, 9. 메인으로)
-
employeeMenu(): void -
사원 메뉴 출력 (1. 추가, 2. 보기, 9. 메인으로)
-
insertStudent(): void -
학생 정보 입력 후
pc.insertStudent()호출 -
printStudent(): void -
저장된 학생 정보 출력
-
insertEmployee(): void -
사원 정보 입력 후
pc.insertEmployee()호출 -
printEmployee(): void -
저장된 사원 정보 출력
실행 예시
학생은 최대 3명까지 저장할 수 있습니다.
현재 저장된 학생은 0명입니다.
사원은 최대 10명까지 저장할 수 있습니다.
현재 저장된 사원은 0명입니다.
1. 학생 메뉴
2. 사원 메뉴
9. 끝내기
메뉴 번호 : 1
1. 학생 추가
2. 학생 보기
9. 메인으로
메뉴 번호 : 1
학생 이름 : 강건강
학생 나이 : 20
학생 키 : 178.2
학생 몸무게 : 70.0
학생 학년 : 1
학생 전공 : 정보시스템공학과
그만하시려면 N(또는 n), 이어하시려면 아무 키나 누르세요 : y
학생 이름 : 남나눔
...
학생을 담을 수 있는 공간이 꽉 찼기 때문에 학생 추가를 종료하고 학생 메뉴로 돌아갑니다.
댓글
GitHub 계정으로 의견이나 질문을 남길 수 있습니다.