Microsoft Word - EEL2 Lab4.docx

Similar documents
PowerPoint Presentation

ch09

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint Presentation

JAVA PROGRAMMING 실습 08.다형성

Design Issues

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Microsoft PowerPoint - 2강

PowerPoint 프레젠테이션

Microsoft PowerPoint - Java7.pptx

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

PowerPoint Presentation

gnu-lee-oop-kor-lec06-3-chap7

Microsoft PowerPoint - Lect04.pptx

PowerPoint Presentation

PowerPoint Presentation

5장.key

PowerPoint Presentation

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 09. 예외처리

PowerPoint Presentation

JAVA PROGRAMMING 실습 05. 객체의 활용

PowerPoint Presentation

05-class.key

제11장 프로세스와 쓰레드

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Microsoft PowerPoint - C++ 5 .pptx

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

No Slide Title

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - Chapter 6.ppt

슬라이드 1

PowerPoint 프레젠테이션

슬라이드 1

PowerPoint Presentation

JAVA PROGRAMMING 실습 07. 상속

쉽게

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

Java ...

01-OOPConcepts(2).PDF

PowerPoint 프레젠테이션

[ 프로젝트이름 ] : Project_Car [ 프로젝트를만든목적 ] : 임의의자동차판매소가있다고가정하고, 고객이원하는자동차의각부분을 Java 를이용하여객 체로생성하고, 그것을제어하는메소드를이용하여자동차객체를생성하는것이목표이다. [ 프로젝트패키지와클래스의내용설명 ] [

rmi_박준용_final.PDF

Cluster management software

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

자바 프로그래밍

Microsoft Word - java19-1-midterm-answer.doc

슬라이드 1

PowerPoint 프레젠테이션

Microsoft Word - EEL2 Lab5 예외처리와 스레드.docx

Microsoft PowerPoint - CSharp-10-예외처리

교육자료

fundamentalOfCommandPattern_calmglow_pattern_jstorm_1.0_f…

Microsoft PowerPoint - 04-UDP Programming.ppt

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

비긴쿡-자바 00앞부속

어댑터뷰

2 단계 : 추상화 class 오리 { class 청둥오리 extends 오리 { class 물오리 extends 오리 { 청둥오리 mallardduck = new 청둥오리 (); 물오리 redheadduck = new 물오리 (); mallardduck.swim();

PowerPoint 프레젠테이션

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

PowerPoint 프레젠테이션

Microsoft PowerPoint - 14주차 강의자료

슬라이드 1

PowerPoint Template

PowerPoint 프레젠테이션

PowerPoint Presentation

(Microsoft PowerPoint - java2-lecture3.ppt [\310\243\310\257 \270\360\265\345])

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

TEST BANK & SOLUTION

Network Programming

10.0pt1height.7depth.3width±â10.0pt1height.7depth.3widthÃÊ10.0pt1height.7depth.3widthÅë10.0pt1height.7depth.3width°è10.0pt1height.7depth.3widthÇÁ10.0pt1height.7depth.3width·Î10.0pt1height.7depth.3width±×10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width¹Ö pt1height.7depth.3widthŬ10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width½º, 10.0pt1height.7depth.3width°´10.0pt1height.7depth.3widthü, 10.0pt1height.7depth.3widthº¯10.0pt1height.7depth.3width¼ö, 10.0pt1height.7depth.3width¸Þ10.0pt1height.7depth.3width¼Ò10.0pt1height.7depth.3widthµå

ThisJava ..

C++ Programming

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - additional01.ppt [호환 모드]

Semantic Consistency in Information Exchange

PowerPoint Presentation

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문

PowerPoint 프레젠테이션

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

(Microsoft Word - \301\337\260\243\260\355\273\347.docx)

JAVA PROGRAMMING 실습 05. 객체의 활용

PowerPoint 프레젠테이션

Transcription:

EEL2 LAB Week 4: Inheritance 1. 다음을만족하는클래스 Employee를작성하시오.(1에서 4번까지관련된문제입니다.) 클래스 Employee 직원는클래스 Regular 정규직와 Temporary 비정규직의상위클래스 필드 : 이름, 나이, 주소, 부서, 월급정보를필드로선언 생성자 : 이름, 나이, 주소, 부서를지정하는생성자정의 메소드 printinfo(): 인자는없고자신의필드이름, 나이, 주소, 부서를출력 2. 다음을만족하는클래스 Regular를작성하시오. 클래스 Regular 는위에서구현된클래스 Employee 의하위클래스 생성자 : 이름, 나이, 주소, 부서를지정하는상위생성자호출 Setter: 월급정보필드를지정 메소드 printinfo(): 인자는없고 정규직 이라는정보와월급을출력 3. 다음을만족하는클래스 Temporary를작성하시오. 클래스 Temporary 는위클래스 Employee 의하위클래스 필드 : 일한시간, 시간당보수를선언하고시간당보수의초기값으로 10000 저장생성자 : 이름, 나이, 주소, 부서를지정하는상위생성자호출 Setter: 일한시간을지정하면서급여를일한시간 * 시간당보수로계산하여저장메소드 printinfo(): 인자는없고 비정규직 이라는정보와일한시간과급여를출력또한다음프로그램으로클래스 Employee, Regular, Temporary 를점검하는프로그램실행 Regular r = new Regular(" 이순신 ", 35, " 서울 ", " 인사부 "); Temporary t = new Temporary(" 장보고 ", 25, " 인천 ", " 경리부 "); r.setsalary(5000000); r.printinfo() ; t.setworkhours(120); t.printinfo() ; 4. 다음프로그램과같이 Regular 객체와 Temporary 객체를 Employee 변수에저장하여실행시킬수있도록프로그램을수정하시오. Employee r = new Regular(" 이순신 ", 35, " 서울 ", " 인사부 "); Employee t = new Temporary(" 장보고 ", 25, " 인천 ", " 경리부 "); //Regular r = new Regular(" 이순신 ", 35, " 서울 ", " 인사부 "); //Temporary t = new Temporary(" 장보고 ", 25, " 인천 ", " 경리부 "); r.setsalary(5000000); r.printinfo() ; t.setworkhours(120); t.printinfo() ;

Hint: Use inheritance, method overriding < 출력예 > 이직원은정규직직원입니다. 이직원의월급여는 0원입니다. 이름 : 장보고, 나이 : 25 주소 : 인천, 부서 : 경리부이직원은임시직직원입니다. 이직원의시간당급여는 10000원입니다. 이달에는 120시간을일을해월급이 1200000입니다. 5. 과일, 사과, 배, 포도를표현한클래스를만들고이들간의관계를고려하여하나의클래스를추상클래스로만들어메소드 print() 를구현하고다음과같은소스와결과가나오도록클래스를작성하시오. 소스 결과 Frute fary[] = new Grape(), new Apple(), new Pear(); for (Frute f: fary) f.print(); 나는포도이다. 나는사과이다. 나는배이다. Hints: Begin with abstract class Frute like public abstract class Frute public abstract void print(); public class Grape extends Frute public class Pear extends Frute public class Apple extends Frute public void print() 6. 다음조건을만족하도록클래스 Car를작성하시오. 필드는정수형으로 maxspeed 최대속도와 speed 현재속도로선언 생성자 : 최대속도를지정하는생성자구현

메소드 : speedup(), speedup(int) 과 speeddown(), speeddown(int) 으로메소드오버로딩구현 다음은클래스 Car 객체로 SpeedUp() 과 speeddown() 을점검하는소스 Car mycar = new Car(300); mycar.speedup(); mycar.speedup(); mycar.speedup( 50); mycar.speedup(50); mycar.speeddown( 30); mycar.speeddown(30); mycar.speeddown(30); mycar.speeddown(30); mycar.speedup(100); mycar.speedup(300); 다음은위소스의실행결과 : 각줄이하나의메소드호출의결과가되도록 speedup() 호출 : 최대속도 : 300, 현재속도 : 5 speedup() 호출 : 최대속도 : 300, 현재속도 : 10 speedup( 50) 호출 : 오류 : 속도가음수라 0으로지정 : 최대속도 : 300, 현재속도 : 10 speedup(50) 호출 : 최대속도 : 300, 현재속도 : 60 speeddown( 30) 호출 : 오류 : 속도가음수라 0으로지정 : 최대속도 : 300, 현재속도 : 60 speeddown(30) 호출 : 최대속도 : 300, 현재속도 : 30 speeddown(30) 호출 : 최대속도 : 300, 현재속도 : 0 speeddown(30) 호출 : 속도가 0보다작아져 0으로지정, 최대속도 : 300, 현재속도 : 0 speedup(100) 호출 : 최대속도 : 300, 현재속도 : 100 speedup(300) 호출 : 최대속도보다높아최대속도로지정, 최대속도 : 300, 현재속도 : 300 Hints: Method overloading and begin with the following: public class Car private int maxspeed; public int speed; public Car(int maxspeed) this.maxspeed = maxspeed; // 메소드오버로딩 public int speedup() public int speedup(int speed) public void checkmaxspeed()

7. 다음조건을만족하도록클래스 Person과 Student를작성하시오. 클래스 Person: 필드 : 이름, 나이, 주소선언 클래스 Student: 필드 : 학교명, 학과, 학번, 8 개학기평균평점을저장할배열로선언 생성자 : 학교명, 학과, 학번지정 메소드 average(): 8 개학기평균평점의평균을반환 클래스 Person 과 Student 프로그램테스트프로그램의결과 : 8 개학기의평균평점은 표준입력으로받도록 이름 : 홍길동나이 : 25 주소 : 서울시광진구학교 : 건국대학교학과 : 전자공학부학번 : 20132222 8학기학점을순서대로입력하세요 1학기학점 3.37 2학기학점 3.89 3학기학점 4.35 4학기학점 3.76 5학기학점 3.89 6학기학점 3.89 7학기학점 4.26 8학기학점 4.89 8학기총평균평점은 4.0375점입니다 < 골격프로그램 > public class Person String name; // 개인의이름 int age; // 개인의나이 String address; // 개인의주소 import java.util.scanner; public class Student extends Person // 생성자 1 개정의 (10)

//3 개의 getter 정의 (9) //8 학기평균평균을구하는메소드 (10) public static void main(string args[]) Scanner s = new Scanner(System.in); Student me = new Student(" 건국대학교 ", " 전자공학부 ", 20132222); me.name = " 홍길동 "; me.age = 20; me.address = " 서울시광진구 "; System.out.println(" 이름 : " + me.name); System.out.println(" 나이 : " + me.age); System.out.println(" 주소 : " + me.address); System.out.println(" 학교 : " + me.getschool()); System.out.println(" 학과 : " + me.getmajor()); System.out.println(" 학번 : " + me.getnum()); System.out.println(" "); System.out.println("8 학기학점을순서대로입력하세요 "); for (int i = 0; i < 8; i++) System.out.print((i + 1) + " 학기학점 "); me.jum[i] = s.nextdouble() ; System.out.println(" "); System.out.println("8 학기총평균평점은 " + me.average() + " 점입니다 "); 8. 수학의복소수를추상화한클래스 Complex를작성하시오. 필드 : 복소수의실수부와허수부를위한변수선언 생성자 : 실수부와허수부를인자로하는생성자 정적메소드 add(complex c1, Complex c2): 복소수 c1 과 c2 의더한결과인복소수를반환 복소수 a + bi 와 c + di 의합 : (a+c) + (c+d)i 정적메소드 sub(complex c1, Complex c2): 복소수 c1 과 c2 의뺀결과인복소수를반환 복소수 a + bi 와 c + di 의빼기 : (a-c) + (c-d)i 메소드 abs(): 복소수의절대값반환 복소수 a + bi 의절대값연산식 : Math.sqrt(a 2 + b 2 ) 메소드 print(): a + bi 형태로출력 복소수 x = 3.4 + 4.5i, y = 5.2 + -2.4i 를생성하여더한결과, 뺀결과, x 와 y 의절대값을 출력하는프로그램도작성

< 출력예 > 3.40 + 4.50i 5.20 + -2.40i 8.60 + 2.10i -1.80 + 6.90i 5.640035460881429 5.727128425310542 < 골격프로그램 > public class Complex double a, b; public Complex(double a, double b) public static Complex add(complex c1, Complex c2) public static Complex sub(complex c1, Complex c2) public double abs() public void print() System.out.printf("%.2f + %.2fi %n", a, b); public static void main(string[] args) System.out.println(x.abs()); System.out.println(y.abs()); (9~11 번 ) public class DataSet private double sum; private Measurable maximum; private int count;... public void add(measurable x) sum = sum + x.getmeasure(); if (count == 0 maximum.getmeasure() < x.getmeasure()) maximum = x; count++; public Measurable getmaximum() return maximum;

/** Describes any class whose objects can be measured. public interface Measurable /** Computes the measure of the object. @return the measure double getmeasure(); 9. 아래의 Die 클래스가 Measurable 인터페이스를구현하도록하고위의 DataSet 클래스를수정하여주사위를 10번던지고나오는주사위값과함께평균값을출력하는클래스 DieTest를작성하고실행. ( 주어진클래스외불필요한클래스추가는안됨 ) import java.util.random; /** This class models a die that, when cast, lands on a random face. public class Die /** Constructs a die with a given number of sides. @param s the number of sides, e.g. 6 for a normal die public Die(int s) sides = s; generator = new Random(); /** Simulates a throw of the die @return the face of the die public int cast() return 1 + generator.nextint(sides); private Random generator; private int sides;

10. Measurable 인터페이스를구현하는클래스 Quiz를작성. 객체 quiz는점수 score와평점 grade ( 예를들어 A0, A+) 를갖는다. 위의 DataSet 클래스를사용하여다음과같이퀴즈성적처리가가능하도록프로그램을작성. // 클래스 quiz 를테스트하기위한프로그램 public class QuizTest public static void main(string[] args) DataSet quizdata = new DataSet(); Quiz q1 = new Quiz(89, "B+"); Quiz q2 = new Quiz(90, "A-"); Quiz q3 = new Quiz(75, "C"); quizdata.add(q1); quizdata.add(q2); quizdata.add(q3); System.out.println("The average score is " + quizdata.getaverage()); Measurable max = quizdata.getmaximum(); Quiz q = (Quiz) max; double score = q.getscore(); String grade = q.getgrade(); System.out.println("The highest quiz score is = " + score + " and the grade is " + grade); 11. 하나의객체 person은이름 name과키 height의속성을갖는다. 위의 DataSet 클래스를사용하여한그룹의 Person 객체를처리하는프로그램을작성. public class PersonTest public static void main(string[] args) class PersonMeasurer implements Measurer public double measure(object anobject) Person aperson = (Person) anobject; return aperson.getheight(); Measurer m = new PersonMeasurer(); DataSet data = new DataSet(m); data.add(new Person("Joe", 183)); data.add(new Person("Chrissy", 158)); data.add(new Person("Bobby", 175)); System.out.println("Average height = " + data.getaverage()); Person p = (Person) data.getmaximum(); String name = p.getname(); System.out.println("The tallest person is " + name);