[정보처리기사실기] JAVA 언어

    반응형

    7과목. 프로그래밍 언어

    📒 03. JAVA 언어


    1. JAVA의 기본 구성

    (1) 클래스(Class)

    • 객체의 속성과 연산의 구조를 정의하는 틀
    • 속성은 멤버 변수로, 연산은 메서드로 정의됨

    (2) 멤버 변수(Member Variable)

    • 객체가 가지는 속성을 정의
    • 해당 객체가 가지고 있는 고유한 값으로, 객체의 상태를 나타냄

    (3) 메서드(Method)

    • 특정 작업을 수행하기 위한 명령문의 집합
    • 멤버 변수의 값이나 상태를 변경하는 데 사용될 수 있는 명령의 집합

    (4) 접근 지정자

    • 클래스의 멤버(변수와 메서드)에 대한 접근 권한을 지정
      종류 접근 범위 클래스 패키지 상속 전체
      public • 접근 제한 없음 O O O O
      protected • 동일 패키지와 상속 받은 클래스 O O O  
      default • 동일 패키지 O O    
      private • 동일 클래스 O      

    (5) 인스턴스

    • 클래스를 기반으로 생성된 객체의 실체
    • 메모리에 할당되어 실제 작동하는 객체
    더보기

    멤버 변수나 메서드가 모여서 구조를 만드는 것이 클래스

    구조가 객체, 인스턴스가 되고 서로 메시지를 통해 호출

    자바의 특징 : 캡슐화, 정보은닉, 상속, 다형성(오버로딩, 오버라이딩), 추상화

     

    2. 객체지향 특징

    (1) 생성자(Constructor)

    • 객체를 생성할 때 호출되는 특별한 메서드
    • 인스턴스 생성 시 초기값을 설정하는 역할
    • 자바에서 생성자의 이름은 클래스의 이름과 동일해야 함
    • 다양한 매개변수를 사용하여 여러 개의 생성자를 오버로딩 할 수 있음
    • 기본 생성자는 매개변수를 받지 않는 생성자, 매개변수가 있는 생성자는 객체 생성 시 필요한 초기값을 받는 생성자
    • 생성자는 인스턴스가 만들어지면 자동으로 호출되는 것, 메서드는 명령을 해야 호출됨
    • this();는 자신의 매개변수를 받지 않는 생성자를 말함

    (2) 상속(Inheritance)

    • 부모 클래스의 멤버를 자식 클래스가 상속받아 사용할 수 있음
    • 부모는 자식을 참조할 수 있지만, 자식은 부모를 참조할 수 없음
    • 부모 클래스의 private 멤버는 직접 상속받을 수 없음(접근 불가)
    • extends 키워드를 사용하여 상속 구현

    (3) 메서드 오버라이딩(Method overriding)

    • 상속 관계에서 부모 클래스의 메서드를 자식 클래스에서 재정의하는 것
    • 부모 메서드와 동일한 이름, 리턴 타입, 매개 변수를 가져야 함
    • 오버라이딩 했을 경우, 똑같은 메서드를 호출했을 때 자식이 재정의한 것을 호출

    (4) 메서드 오버로딩(Method Overloading)

    • 같은 이름의 매서드를 매개변수의 개수나 타입을 달리하여 중복 정의하는 것
    • 메서드 이름을 동일하지만, 인자의 개수나 타입이 다름

    (5) 상속 - 생성자

    • 상속했을 경우에는, 부모의 생성자부터 수행해야 함
    • 자식에서 부모를 명시적으로 호출했는지 안했는지 확인
    • 자식에서 부모를 호출하지 않았을 경우엔, 묵시적으로 부모의 매개변수가 없는 디폴트 생성자를 호출해야 함
    • 상속받은 생성자에서 동일한 변수를 호출할 경우엔, 생성자가 아닌 앞에 있는 구조의 값을 리턴
    • 동일한 메서드를 호출했을 경우엔, 생성자가 가지고 있는 메서드 호출
    • 부모 형태에 자식을 생성했을 땐, 부모가 가지고 있는 메서드만 호출할 수 있음

    (6) 하이딩

    • 상위 클래스의 static 메서드를 하위 클래스에서 같은 유형으로 다시 선언하는 것
    • 생김새는 오버라이딩과 비슷하지만 앞에 static이 붙으면 하이딩
    • 하이딩은 부모 자식 모두 메서드 앞에 static이 붙어야 함
    • 하이딩된 메서드는 메서드 호출이 클래스 구조(타입)에 있는 메서드를 호출
    • 메서드 오버라이딩은 생성자에 따라서 결정되지만, 하이딩은 구조에 따라서 어떤 것이 호출될지 결정됨

     

    3. 추상클래스와 인터페이스

    (1) 추상클래스

    • .부분적으로 구현된 클래스
    • 하나 이상의 추상 메서드(미완성 메서드)를 포함하는 클래스
    • 추상 클래스 자체로는 인스턴스를 생성할 수 없음
    • 추상 클래스를 상속받은 자식 클래스에서 모든 추상 메서드를 구현(오버라이딩)해야 함
    • 구현된 메서드를 통해 기능을 완성시킴
    • 'abstract' 키워드 사용

    (2) 인터페이스(Interface)

    • 모든 메서드가 추상 메서드인 클래스
    • 구현된 상태 없이 전부 선언만 있는 구조
    • 클래스가 인터페이스를 구현할 때는 인터페이스에 선언된 모든 추상 메서드를 구현해야 함
    • 부모 클래스 : interface, 자식 클래스 : implements 키워드 사용

     

    4. 예외처리(Exception Handling)

    (1) 개념

    • 프로그램 실행 중 발생하는 예외 상황을 처리하는 방법
    • 예외가 발생하였을 때 안정적으로 프로그램을 종료하거나 오류를 처리함

    (2) 핵심 구성 요소

    • try 블록 : 예외가 발생할 수 있는 코드 포함, 예외가 발생하면 아래의 코드는 실행하지 않음
    • catch 블록 : try 블록 내에서 발생한 예외 처리, 하나 이상 쓸 수 있음, 예외가 없을 경우 실행하지 않음
    • finally 블록 : 예외 발생 여부와 상관없이 모든 오류 처리가 종료된 후 실행
    • throw : 프로그램에서 직접 예외를 발생시키기 위해 사용 (강제로 발생)
    • throws : 해당 메서드에서 처리하지 않고 호출자에게 예외 처리 위임

     

    5. 기타

    (1) 객체 비교

    • equlas() : 객체의 내용이 같은지 비교
    • ==
      - 객체일 경우 : 두 객체의 참조가 같은 객체를 가리키고 있는지 확인, 같은 주소값을 찾는지 확인
      - 일반 변수일 경우 : 값(내용)이 같은지 확인

    (2) static 변수

    • 클래스의 모든 인스턴스에 걸쳐 공유되는 변수
    • 하나의 인스턴스에서 static 변수의 값을 변경하면, 변경사항이 모든 인스턴스에 반영됨
    • 시작과 동시에 메모리에 올라감
    • 전역 변수의 특징을 가지고 있음

    (3) static 메서드

    • static 메서드는 인스턴스 변수에 접근할 수 없음
    • static 데이터 멤버나 다른 static 메서드만 호출할 수 있음
    • 객체를 생성하지 않고 클래스 이름을 통해 직접 호출할 수 있음
    • 시작과 동시에 메모리에 올라감

     

    더보기

    실수는 지정하지 않았을 경우에 기본 타입이 double형
    0으로 나누려고 할 땐 산술예외가 발생함

    clone() : 복사

    문자열을 만난 시점부터 뒷부분은 문자로 인식

    substring(*) : *부터 끝까지 넣어라

    substring(*, 8) : *부터 8-1 까지 넣어라

    indexOf(*) : * 값을 찾음

    배열은 값을 넘길 때 주소값을 넘김

     

    C언어 : 0(거짓) / 1(참)

    JAVA : false / true

    파이썬 : False / True

     

    참고자료

    흥달쌤,  '흥!나게 합격 달성! 2024 정보처리기사 실기 클래스'
     

    1억뷰 N잡

    [1회 연장 포함] 흥!나게 합격 달성! 2024 정보처리기사 실기 클래스

    www.njobler.net

    반응형

    댓글