반응형
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 정보처리기사 실기 클래스'
반응형
댓글