본문 바로가기

정보처리기사

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

목차

    객체(인스턴스) 생성시 메서드 호출

    메서드 오버라이딩 된 경우, 최종 정의된 메서드(자식 클래스 메서드)를 호출한다.

    - 메서드 오버라이딩되었지만, static 메서드일 경우 인스턴스 구조를 파악한다. 부모 클래스 형태로 자식 클래스의 인스턴스 생성했다면 부모 클래스의 메서드를 호출한다.

     

    인스턴스 생성시 클래스의 멤버 변수부터 대입한다.

    - 부모 클래스 형태로 자식 클래스 인스턴스를 생성했다면, 인스턴스는 부모 클래스의 멤버 변수 값을 참조하게 된다.

     

    메서드 오버로딩 (Method Overloading)

    같은 이름의 메서드를 인자만 다르게 하여 중복 정의한 것으로 인자의 갯수, 타입은 달라야한다.

    상속관계와 상관없이 어디든 존재하며, 인스턴스 생성시 인자 값에 맞는 메서드를 호출한다.

    예외) 부모 클래스 형태로 자식 클래스의 인스턴스 생성할 경우

    부모 클래스의 메서드만 호출 가능하다. 이때, 부모 클래스의 메서드와 인자값이 다르면 오류가 발생한다.

    인스턴스 생성시, 인자 값에 맞는 부모 클래스의 메서드를 호출한다.

     

    추상클래스

    반드시 오버라이딩해서 사용할 미완성의 메서드를 하나 이상 가진 미완성 클래스

    상속받은 자식 클래스에서 추상 메서드를 구현해서 사용한다.

    추상 클래스는 객체를 생성할 수 없다.

    추상클래스는 abstract 키워드를 붙이고 구현할 클래스에서 extends로 상속받는다.

     

    추상클래스의 객체 생성

    추상클래스는 기본적으로 인스턴스를 생성할 수 없다. (예: Test t = new Test() 불가)

    인스턴스 생성은 안되지만, 이런 형태로 선언할 수는 있다. Shape s;

     

    인터페이스 (출제빈도 낮음)

    100% 추상메서드를 갖고있는 형태로 메서드의 원형만 정의한다.

    오히려 하나라도 구현된 메서드를 포함하고 있다면 오류가 발생한다.

    class가 아니라 interface 키워드로 작성하며, 인터페이스를 구현시 implements 키워드를 사용한다.

    인터페이스에 추상메서드가 없으면 구현하진 않는다. 

     

    예외처리

    ArithmeticException e :  0으로 나누는 등 산술 오류 발생

    ArrayIndexOutOfBoundsException e : 배열의 범위를 초과했을 때

    public static void main(String args[]) {
    	try{
        	// 무조건 실행하는 코드
        }
        catch(ArithmeticException e){
        	// 산술계산 오류 발생시 실행 (0으로 나눴을 때)
        }
        catch(Exception e){
        	// 모든 오류 발생시 실행
        }
        finally{
        	// 모든 오류 처리 종료 후, 무조건 실행 (생략 가능)
        }
    }

    예외던지기, throws Exception

    메서드를 호출한 곳에서 예외처리 하도록 예외를 위로 던지는 방법이다. 

    throws 키워드는 메서드 선언부에 사용되며, 예외(Exception)를 뒤로 미루는 것이다. 처리하지 않은 예외를 호출자에게 전달한다.

    throw 키워드는 메서드 내에서 예외를 발생시키는데 사용하며, throws Exception 이 있기에 쓸 수 있는 키워드이다.

    아래 Exception e의 throw e는 해당 예외를 나를 호출한 곳으로 넘긴다.

    class TestException {
    	public static void foo() throws Exception{
        	try {
            	// 새로운 예외발생
                throw new Exception();
            }
            catch (Exception e) {
            	// 해당 예외를 나를 호출한 곳으로 넘긴다.
                throw e;
            }
        }
    }

    유틸패키지

    clone 내용을 복제한다.

    concat() 문자열 합치기

    substring(시작값, 끝값) 문자열 자르기

    substring(시작값) 1개일 경우에는 문자열 끝까지 return한다.

    Integer.toString() 정수를 문자열로 변환

    indexOf() 해당 숫자가 나오는 인덱스 출력

    lastIndexOf() 인덱스를 뒤에서 부터

    LinkedList 정수를 요소로 링크드 리스트 객체를 만든다. 링크드 리스트는 배열과 같은 형태로 [데이터 | 포인터] 구조인데, 포인터가 다음 데이터를 참조한다.

    addFirst 연결리스트의 제일 앞쪽에 노드를 추가한다.

    addLast 연결리스트의 요소를 마지막에 더한다.

    removeFirst 연결리스트의 첫번째 요소를 제거하고 return한다.

    removeLast 마지막에 있는 요소를 제거하고 return한다.

    isEmpty 지금 비어있는 상태인지 확인

    addElement : 요소를 더하는 메서드

    equals : 요소가 같은 값인지 true 또는 false로 반환

     

    정적변수

    static 변수는 java에서 공유하는 변수이다. 여러 인스턴스 생성시, 각자 static변수를 갖고 있는 것이 아니라 값을 공유한다.

     

    출력문

    java에서 출력문은 문자열을 만날때까지 숫자로 인식한다. 문자를 만나면 그 뒤로 모든 문자는 문자로 출력한다.

     

    배열

    배열은 call by reference로 주소값으로 넘기기 때문에 실제 원본에도 값에 영향을 미친다.

    int a[][] 형태는 가변 2차원 배열이다.

     

    계산식 tip

    1~100까지 합산 5050

    참고 : https://memorist.tistory.com/50

     

     

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

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