[CS] 정보처리기능사 실기_04.Java

본 문서는 정보처리기능사 실기 시험 대비용 필기입니다

Java

객체지향 프로그래밍 언어 중 하나, 프로시저보다는 명령과 데이터로 구성된 객체를 중심으로 하는 프로그래밍 기법

  • 분산 네트워크 환경에 적용이 가능
  • 멀티스레드 기능을 제공하므로 여러 작업을 동시에 처리할 수 있음
  • 운영체제 및 하드웨어에 독립적이며, 이식성이 강함

Java의 기초

  • 아무리 작은 프로그램이라도 클래스 안에 속성(변수)와 메소드(함수)를 만들어서 실행
  • 실행용으로 만든 클래스 안에 main() 메소드가 있어야한다

  • 표준 출력 : System 클래스의 서브 클래스인 Out 클래스의 메소드 print(), printIn(), printf() 등을 사용
    • System.out.printf(서식 문자열, 변수) : 서식 문자열에 맞게 변수의 내용 출력
    • System.out.print() : 값이나 변수의 내용을 형식없이 출력
    • System.out.println() : 값이나 변수의 내용을 형식없이 출력한 후 커서를 다음 줄의 처음으로 이동

배열과 반복문

  • Java에서는 배열을 객체로 취급
  • heap 영역에 객체를 생성하고 생성된 객체가 있는 곳의 주소를 객체 변수에 저장(동적 할당)
  • Java에서는 주소를 제어할 수 없기 때문에 객체 변수를 생성한다고 이해
public class Example{
    public static void main(String[] args)
    {
        int a[] = new int[5];
        int i;
        for(i = 0; i < 5; i++)
            a[i] = i + 10;
        for(i = 0; i < 5; i++)
            System.out.printf("%4d", a[i]); // 10 11 12 13 14

        int[] b = {90,100,80,70,60,50,30};
        int sum = 0;
        float avg;
        for (int i : b)
            sum += i;
        avg = (float)sum / b.length;
        System.out.printf("%4d, %4.2f", sum, avg); // 480, 68.57
    }
}

문자열

문자열 처리 클래스 String 사용

public class Example{
    public static void main(String[] args){
        String str = "Information!";
        int n = str.length();
        char[] st = new char[n];
        n--;
        for (int k = n; k >= 0; k--){
            st[n-k] = str.charAt(k);
        }
        for (char k : st)
            System.out.printf("%c", k); // !noitamrofnI
    }
}

Java의 활용

클래스와 함수

클래스 : 객체 생성을 위한 필드(속성)와 함수(메소드)를 정의하는 설계도
객체 : 클래스에 의해 정의되고 설계된 내용을 기반으로 생성된 모든 대상.속성과 기능을 가짐

class ClassA{
    int a = 10;
    int funcAdd(int x, int y){
        return x + y + a;
    }
}
public class Test{
    public static void main(String[] args)
    {
        int x = 3, y = 6, r;
        ClassA cal = new ClassA(); // 객체 생성 예약어 new
        r = cal.funcAdd(x,y);
        System.out.print(r); // 19
    }
}
class ClassA{
    ClassA(){
        System.out.print('A');
        this.prn(); // 자신이 속한 ClassA 클래스의 prn 메소드를 호출, ClassA 클래스의 prn() 메소드는 ClassB 클래스의 prn() 메소드에 의해 재정의 됨
    }
    void prn(){
        System.out.print('B');
    }
}
class ClassB extends ClassA{
    ClassB(){
        super(); // 부모 클래스의 생성자를 호출
        System.out.print('D');
    }
    void prn(){
        System.out.print('E');
    }
    void prn(int x){
        System.out.print(x);
    }
}
public class Test{
    public static void main(String[] args){
        int x = 7;
        ClassB cal = new ClassB();
        cal.prn(x); // AED7
    }
}


© 2023 Jinsoo Lee. All rights reserved.

Powered by Hydejack v9.1.6