. 객체 지향 프로그램의 주요 개념 중 추상 데이터(Abstract Data), 캡슐화(encapsulation), 자료 은폐(data hiding), 상속성(inheritance), 재사용(reuse)에 대해서 설명하여라. (1) 추상 데이터 자료를 모듈의 중심으로 하고 이 자료와 다른 프로그램간의 함수를 이 자료에 붙여서 한 구조로 만든 자료이다. 즉, 추상화 자료형은 자료형과 기본연산의 유형을 함께 규정하고 그 구현은 분리함으로써 모듈화 프로그램이 가능하게 하는 것으로서 모듈화 설계의 확장으로 생각할 수 있다. (2) 캡슐화 서로 관련있는 정보를 한 곳으로 묶어 두었다가 사용자가 정보가 필요할 경우 이용하게 하는 것으로, 사용자는 그 안의 정보를 자세히 알지 않아도 되며, 나중에 수정해야 할 경우 관련 부분만을 따로 처리할 수 있으므로 사용자에게 편리를 제공(3) 자료 은폐모든 자료는 클래스 내부에서만 접근할 수 있도록 전용화하고 모든 함수들은 클래스 외부에서도 사용할 수 있도록 공용화하여 자료는 외부에서 직접 접근할 수 없고 공용화된 함수를 통해서만 접근할 수 있도록 한 개념(4) 상속성하위 모듈이 상위 모듈의 자료와 함수를 상속받아 마치 자기 자신의 것처럼 사용할 수 있게 해주는 것을 의미(5) 재사용자료형이 달라질 때마다 프로그램을 재작성해야 하는 불편함을 보완하여, 특정 자료형을 지정하지 않고 어느 자료형에서도 쓸 수 있는 방법을 의미
제2장 프로그램 예제 소스 & 출력2-1// 간단한 출력문으로 구성된 프로그램의 예class HelloWorld {public static void main (String[] args) {System.out.println ("Hello World, This is my first Java Program.");} /* method main() */} // class HelloWorld2-2// 간단한 출력문으로 구성된 프로그램의 예class HelloAgain {public static void main (String[] args) {System.out.print ("Hello World, ");System.out.print ("This is my first ");System.out.println ("Java Program.");System.out.println ("Hello World,");System.out.println ("This is my first ");System.out.println ("Java Program.");} /* method main() */} // class HelloAgain2-3// 변수사용의 예class Finger {public static void main (String[] args) {int fingers;fingers = 10;System.out.println ("The number of fingers is " + fingers);} // main() method} // class Fingers2-4// 사용자로부터 데이타를 입력받는 프로그램의 예import java.io.*;class ReadWrite {public static void main (String[] args) throws IOException {BufferedReader stdin = new BufferedReader (new InputStreamReader (System.in));String data;System.out.print ("Enter a sentence: ");data = stdin.readLine();System.out.print ("You typed the sentence: " + data);}}2-5// 반지름을 입력받아 원의 넓이와 같은 정사각형의 한 변을 산출하는 프로그램public class MathFunction {public static void main (String[] args) {double radius = 25;double area = radius * radius * Math.PI;double length = Math.sqrt (area);System.out.println ("The length of right rectangle is " + length);}}2-6// 두개의 정수를 입력받아서 합계를 산출하는 프로그램import java.io.*;class AddInteger {public static void main (String[] args) throws IOException {BufferedReader stdin = new BufferedReader(new InputStreamReader (System.in));String string1, string2;int num1, num2, sum;System.out.print ("Enter the first number : ");string1 = stdin.readLine( );num1 = Integer.parseInt (string1);System.out.print ("Enter the second number : ");string2 = stdin.readLine( );num2 = Integer.parseInt (string2);sum = num1 + num2;System.out.print ("The sum of 2 number is " + sum);}}2-7// 두개의 정수를 입력받아서 합계를 산출하는 프로그램import java.io.*;class AddInteger2 {public static void main (String[] args) throws IOException {BufferedReader stdin = new BufferedReader(new InputStreamReader (System.in));String string1, string2;Double num1, num2;double first, second, sum;System.out.print ("Enter the first number : ");string1 = stdin.readLine( );num1 = Double.valueOf (string1);first = num1.doubleValue();System.out.print ("Enter the second number : ");string2 = stdin.readLine( );num2 = Double.valueOf (string2);second = num2.doubleValue();sum = first + second;System.out.print ("The sum of 2 floating point number is " + sum);}}