본문 바로가기

정보처리기사

정보처리기사 자바 정리 #00

목차

    자료형

    논리형

    • boolean 1bit (true 또는 false)

    문자형

    • char 2byte

    정수형

    • byte 1byte
    • short 2byte
    • int 4byte
    • long 8byte

    실수형

    • float 4byte
    • *double 8byte

    *자바는 기본적으로 실수를 형변환하지 않는다면, double 형을 갖게 된다.

    출력형태

    - 일반적인 출력 형태

    System.out.print();

    - "문자열" +변수, 띄어쓰기 포함

    System.out.print(" k1= " +k1);
    
    // 출력
    k1= 7

    - 출력후 엔터(개행 포함)

    System.out.println("S");
    System.out.println("T");
    
    // 출력
    S
    T

    인스턴스(객체) 생성

    일반적인 인스턴스 생성 형태
    // 클래스명 객체(참조변수)명 = new 클래스명();
    C p = new C();

    - 인스턴스만 생성시, 메모리에 할당되지 않는다. 

    - q=p; 다른 인스턴스지만, 같은 메모리 공간을 참조한다.

    객체 생성의 상속

    객체 생성시 부모 클래스를 상속받을 경우, 참조 변수의 값은 부모 클래스에 가까운 값이 된다.

    class A {
    	int a = 10;
    	public static void main(String[] args) {
            B b1 = new B();
            A b2 = new B(1);
            
            // 참조변수 b2는 부모 클래스 A의 멤버변수(a) 값이다.
            System.out.print(b1.a + b2.a);
        }
    }
    class B extends A {
    	int a = 20;
    }

    접근지정자(접근제어자)

    종류 접근 범위 클래스 패키지 상속 전체
    public 제한 없음 O O O O
    protected 동일 패키지와 상속 받은 클래스 O O O  
    default 동일 패키지 O O    
    private 동일 클래스 O      

    생성자

    생성자 규칙
    • 클래스명과 메서드명 동일
    • 리턴타입 정의하지 않는다.
    • 생성자는 객체 생성시(new 키워드 사용) 호출된다. 예) C p = new C();
    • 생성자가 선언될 경우, 생성자의 규칙대로만 객체 생성한다.

    생성자 문제 유형의 해설 정리

    1. 생성자 호출
    • main 함수에서 생성자 호출을 파악한다.
    • 생성자는 기본적으로 하나만 호출한다. 따라서 new 키워드로 객체 생성시, 우측에 있는 생성자만 신경쓰면 된다.
    2. 생성자 상속 및 명시적 호출(super)

    해당 생성자에서 상속여부를 파악한다.

    부모의 형태로 자식을 생성할 경우, 자식 클래스의 생성자부터 찾아간다.

    이때, 해당 생성자에서 super 키워드로 명시적 호출을 파악한다.

    super 키워드 : 부모 생성자의 명시적 호출

    super 키워드 없을 시, 인자 없는 부모 생성자를 호출한다.

    다형성

    메서드를 여러 형태로 표현하는 것이다.

    메서드

    1. static 메서드

    - static은 객체 생성(new 키워드)을 하지 않고 일반 함수처럼 사용 가능하다.

    - static 메서드는 상속관계일 때, hiding (하이딩) 관계를 주의해야 한다.

    2. 메서드 오버라이딩(Method Overriding)

    - 상속관계에서 부모 클래스의 메서드를 재정의한다.

    - 추상클래스나 인터페이스 상속시 사용된다.

    - 부모 메서드의 이름, 리턴 타입, 매개변수의 개수와 유형이 완전히 동일해야 한다.

    [객체 생성] 부모 클래스의 형태로 자식 클래스의 인스턴스를 생성할 때

    - 일반적으로 부모 메서드를 호출하지만, 메서드 오버라이딩 할 경우는 자식 메서드를 호출한다.

    - 하지만 static 메서드의 경우 오버라이딩이 아니라, 객체 생성 형태를 확인해야 한다.

     객체 생성시 가까운 클래스(좌측의 부모 클래스)의 메서드를 호출한다.

    class A {
    	static void f() { System.out.print("1 "); }
        void g() { System.out.prin("2 "); }
    }
    class B extends A {
    	// static 메서드
    	static void f() { System.out.print("3 "); }
        
        // 메서드 오버라이딩
        void g() { System.out.prin("4 "); }
    }
    class C {
    	public static void main(String args[]) {
        // 부모 클래스로 자식 클래스의 인스턴스 생성
        	A a = new B();
            
            // static 메서드로 부모 클래스 형태의 인스턴스로 부모 메서드 호출
            a.f();
            // 일반적인 메서드 오버라이딩된 형태로 자식 메서드 호출
            a.g();
        }
    }
    // 출력
    1  4

    '정보처리기사' 카테고리의 다른 글

    정보처리기사 자바 정리 #01  (0) 2023.09.20
    정보처리기사 파이썬 정리1  (0) 2023.09.20
    서브네팅과 서브넷 계산  (0) 2023.09.12
    서브넷 마스크와 문제 유형  (0) 2023.09.12