[정보처리기사실기] 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

반응형

댓글