1. 객체지향프로그래밍(OOP)의 상속에 대하여 서술하시오 (10점)


2. 자동형변환이란 무엇인지 서술하시오. (20점) 


3. 자바 소스 코드 컴파일 시 명시적으로 코딩하지 않을 경우 컴파일러에 의해 자동으로 생성되는 코드를 5가지 이상 서술하시오. (35점)


4. 객체지향프로그래밍(OOP)의 다형성에 대하여 서술하시오 (35점)

 


package kr.or.iei;

import java.util.Scanner;

public class Question1 {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int[] data = new int[5];
		for(int i = 0; i<5; i++) {
			System.out.print((i+1) + "번째 정수 입력 : ");
			data[i] = Integer.parseInt(sc.nextLine());
		}
		for(int i= data.length-1; i>=0 ;i--) {
			for(int j = 0; j<i; j++) {
				if(data[j]>data[j+1]) {
					int tmp = data[j];
					data[j] = data[j+1];
					data[j+1] = tmp;
				}
			}
		}
		System.out.print("정렬된 결과 : ");
		for(int i = 0;i<data.length;i++) {
			System.out.print(data[i]+" ");
		}
		System.out.println();
		System.out.println("정렬 후 첫번째 수와 마지막수의 합 : "+(data[0]+data[4]));

	}

}

1.객체지향프로그래밍(OOP)의 상속에 대하여 서술하시오 (10점)결과 | 점수 (10.0점)

수강생 답 객체 지향 프로그래밍이란 절차 지향 프로그램에 비해 기능과 데이터들을 독립적으로 운용하기 위한 기법이다.

상속은 객체 지향 프로그래밍의 큰 특징 중 하나로 상위클래스의 기능을 하위 클래스가 상속받아 사용 할 수 있도록 하는 기법이다​.

답안첨삭  
모범답안 상속 : 다른 클래스가 가지고 있는 멤버들을 새로 만들 클래스에서 직접 만들지 않고 상속을 받음으로써 새 클래스가 자신의 멤버처럼 사용할 수 있게 만든 기술
평가기준 프로그래밍 언어별 특성에 대한 이해
수행준거

프로그래밍 언어별 득성을 파악하고 설명할 수 있다.

애플리케이션을 최적화하기 위해 프로그래밍 언의의 특성을 활용할 수 있다.

2.자동형변환이란 무엇인지 서술하시오. (20점)결과 | 점수 (15.0점)

수강생 답 자동형변환이란 자료형이 다른 데이터가 스스로 자료형을 변환하는 현상이다. 자료형이 변환 될때 데이터의 손실이 없는 경우에 자동형변환이 일어난다.

그 예로 String형과 다른 숫자를 표현하는 기본 자료형이 같이 출력되는 코드를 작성하면 String형으로 자동으로 변환된다.

또 소수점이 없는 int형과 소수점이 있는 double이 연산될때 명시적으로 캐스팅 해주지 않아도 int​형이 double​형으로 형변환되어 연산된다.

답안첨삭 자동형변환이란 자료형이 다른 데이터가 스스로 자료형을 변환하는 현상이다. 자료형이 변환 될때 데이터의 손실이 없는 경우에 자동형변환이 일어난다.

그 예로 String형과 다른 숫자를 표현하는 기본 자료형이 같이 출력되는 코드를 작성하면 String형으로 자동으로 변환된다.

또 소수점이 없는 int형과 소수점이 있는 double이 연산될때 명시적으로 캐스팅 해주지 않아도 int​형이 double​형으로 형변환되어 연산된다.

 

​- 업캐스팅에 대한 내용도 포함되면 더 좋겠습니다.

모범답안 연산시 컴파일러가 자동으로 형을 변환하는 것을 의미하며, 일반적으로 갑의 범위가 작은데이터 타입에서 값의 범위가 큰데이터 타입으로 변환될 때 자동형변환이 일어난다.
평가기준 데이터 타입의 형변환에 대한 이해도 평가
수행준거

프로그래밍 언어별 특성을 파악하고 설명할 수 있다.

파악된 프로그래밍 언어의 특성을 적용하여 애플리케이션을 구현할 수 있다.

3.자바 소스 코드 컴파일 시 명시적으로 코딩하지 않을 경우 컴파일러에 의해 자동으로 생성되는 코드를 5가지 이상 서술하시오. (35점)결과 | 점수 (35.0점)

수강생 답 1. 하위클래스에서 상위클래스의 기능을 상속 받는 경우 : super();

 

2. 기본적으로 모든 클래스는 Object을 상속받음 : expends Object​​

 

3. import java.lang.*

 

4. 매개변수가 없는 컨스트럭터

 

5. 접근제한자를 입력하지 않았을 때 : package접근제한자 

답안첨삭  
모범답안

import java.lang.*;

default constructor,

return;

.toString()

this.

super()

자동 upcasting

평가기준 애플리케이션 최적화를 위한 프로그래밍 언어의 컴파일러에 대한 이해
수행준거

파악된 프로그래밍 언어의 특성을 적용하여 애플리케이션을 구현할 수 있다.

애플리케이션을 최적화하기 위해 프로그래밍 언어의 특성을 활용할 수 있다.

4.객체지향프로그래밍(OOP)의 다형성에 대하여 서술하시오 (35점)결과 | 점수 (35.0점)

수강생 답 다형성은 다양한 형태를 가진 성질을 말한다.

이런 성질을 가진 기능들은 서로 다른 참조자료형을 받아서 쓸수 있다.

 

일반적으로 같은 이름이어도 매개변수의 자료형과 개수에 따라 내부적으로는 다르게 인식한다. 

하나의 이름에 기능이 많이 담겨있는 경우 오버로드라고도 한다.

 

 

답안첨삭  
모범답안 상속을 이용한 기술로 하나의 부모 타입의 참조변수로 상속 관계에 있는 여러 자식 타입 객체를 다루는 기술
평가기준 프로그래밍 언어별 특성에 대한 이해
수행준거

프로그래밍 언어별 득성을 파악하고 설명할 수 있다.

애플리케이션을 최적화하기 위해 프로그래밍 언의의 특성을 활용할 수 있다.


//2. 자동형변환 : 기본타입 프로모션, 참조형 업캐스팅

//3. 프로모션은 따로 코드가 생성되는 것은 아님

//4. 오버라이딩이 다형성은 아님, 오버로딩도 다형성이긴 하지만 자바에서의 다형성은 상위 클래스를 상속 받는것(OOP), 기능과 장점


다음 아래의 요구사항에 맞도록 Java 프로그램을 제작하시오

1. 구현 클래스

Package명 클래스명 메소드 설명

kr.or.iei Question1 +main(args:String []):void main 함수 안에서 모든 코드 작업 진행

 

2. 구현 내용

주제 : 5개의 정수를 입력후 입력한 값들이 오름차순 정렬로 표현 되도록 구현하시오

- 요구사항

1) 패키지명, 클래스명, 메소드명을 모두 요구사항에 맞게 제작

2) 입력은 반복문, Scanner 객체를 사용하여 5번 입력 받아야 함 (정수 5개 입력받는 배열 사용)

3) 정렬 기법은 버블정렬을 이용하여 오름차순 정렬 되어야 함

4) 정렬된 결과 출력은 반복문을 이용하여 출력 되어야 함

5) 마지막에 첫번째 수와 마지막수를 합한 값을 출력할 수 있어야 함

 

3. 실행 결과

ex1)

1번째 정수 입력 : 7

2번째 정수 입력 : 4

3번째 정수 입력 : 8

4번째 정수 입력 : 5

5번째 정수 입력 : 1

정렬된 결과 : 1 4 5 7 8

정렬 후 첫번째 수와 마지막수의 합 : 9

ex2)

1번째 정수 입력 : 5

2번째 정수 입력 : 4

3번째 정수 입력 : 3

4번째 정수 입력 : 2

5번째 정수 입력 : 1

정렬된 결과 : 1 2 3 4 5

정렬 후 첫번째 수와 마지막수의 합 : 6

전체 코드를 올려주세요
 
1) 패키지명, 클래스명, 메소드명을 모두 요구사항에 맞게 제작
 
2) 입력은 반복문, Scanner 객체를 사용하여 5번 입력 받아야 함 (정수 5개 입력받는 배열 사용)
 
3) 정렬 기법은 버블정렬을 이용하여 오름차순 정렬 되어야 함 (반복 코드 포함)
 
4) 정렬된 결과 출력은 반복문을 이용하여 출력 되어야 함
 
5) 마지막에 첫번째 수와 마지막수를 합한 값을 출력할 수 있어야 함
 

평가항목

평가내용평가기준배점평가결과

객체 기능 활용 능력 객체의 기능을 알맞게 사용하였는가? (ex. Length) 15.0 아니오
변수 활용 능력 주어진 요구사항에 맞도록 배열의 개수를 알맞게 설정하였는가? 10.0
반복문 활용 능력 주어진 요구사항에 맞도록 반복문(for)을 적절하게 사용하였는가? 10.0
분기문 활용 능력 주어진 요구사항에 맞도록 분기문(if)을 적절하게 사용하였는가? 10.0
알고리즘 이해 능력 주어진 요구사항에 맞도록 정렬기법을 적절하게 사용하였는가? 15.0
연산법 이해 능력 주어진 요구사항에 맞도록 마지막 연산의 결과값을 계산하고 표현하였는가? 15.0
패키지 작성 능력 주어진 요구사항에 맞도록 패키지 명을 알맞게 작성하였는가? 5.0
클래스 작성 능력 주어진 요구사항에 맞도록 클래스 명을 알맞게 작성하였는가? 5.0
입력 기능 활용 능력 주어진 요구사항에 맞도록 입력 객체(Scanner)를 표현하였는가? 5.0
출력 기능 활용 능력 예시에 표현되는것처럼 출력시 라인 정리가 깔끔하게 표현되었는가? 10.0

+ Recent posts