Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 케이쉴드주니어
- 드림핵
- reivew
- 기록
- 보안용어
- IT
- wargame
- 리눅스
- 자격증
- it자격증
- 클라우드
- webhacking
- keyword
- Review
- 자격증공부
- 웹해킹
- 정보처리기사
- Security
- DreamHack
- 보안
- 정리
- 복습
- 취약점진단
- Shell
- 리눅스마스터2급
- 워게임
- 공부
- 위험관리
- Linux
- study
Archives
- Today
- Total
IT Memory Note
[정보처리기사] 프로그래밍 언어 활용 : 자바(3) 본문
9️⃣ 클래스(Class)
☆☆☆
(1) 클래스의 개념
- 객체 지향 프로그래밍(OOP, Object-Oriented Programming)에서 특정 객체를 생성하기 위해 변수와 메서드를 정의하는 틀
(2) 클래스 접근 제어자(Access Modifier)
1. 클래스 접근 제어자의 개념
- 지정된 클래스, 변수, 메서드를 외부(같은 패키지이거나 다른 패키지)에서 접근할 수 있도록 권한을 설정하는 기능
2. 클래스 접근 제어자의 종류
종류 | 설명 |
public | 외부의 모든 클래스에서 접근이 가능한 접근 제어자 |
protected | • 같은 패키지 내부에 있는 클래스, 하위 클래스(상속받은 경우)에서 접근이 가능한 접근 제어자 • 자기 자신과 상속받은 하위 클래스 둘 다 접근이 가능한 접근 제어자 |
default | 접근 제어자를 명시하지 않은 경우로 같은 패키지 내부에 있는 클래스에서 접근이 가능한 접근 제어자 |
private | 같은 클래스 내에서만 접근이 가능한 접근 제어자 |
※ default : 자바에만 존재하는 접근 제어자
(3) 클래스 정의
- 클래스에서 변수는 변수 선언과 동일하고, 메서드는 사용자 정의 함수와 문법이 동일함
- 일반적으로 변수는 private 접근 제어자를 사용하여 외부에서 접근하지 못하게 하며, 메서드는 외부에 공개할 것만 public 접근 제어자를, 그렇지 않으면 protected나 private 접근 제어자를 사용하여 정보은닉을 함
public class 클래스명 {
private 자료형 변수명;
public 반환_자료형 메서드명(자료형 변수명, ...) {
명령어;
return 반환값;
}
}
※ 정보은닉(Information Hiding) : 코드 내부 데이터와 메서드를 숨기고 공개 인터페이스를 통해서만 접근이 가능하도록 하는 코드 보안 기술
(4) 클래스 변수 생성
- 클래스는 객체를 생성하기 위해 변수와 메서드를 정의하는 틀이므로 실제 변수에 들어갈 인스턴스를 new 키워드로 생성해주어야 함
- 변수를 이용해 클래스의 메서드에 접근함
클래스명 변수명 = new 클래스명(파라미터);
변수명.메서드명();
(5) 클래스 this
- 현재 객체를 가리키는 키워드
- 클래스 내부의 변수와 메서드를 가리킬 수 있음
클래스 내부 변수 접근 | this.변수; |
클래스 내부 메서드 접근 | this.메서드(매개변수); |
클래스 내부 생성자 호출 | this(매개변수); |
(6) 생성자(Constructor)
- 해당 클래스의 객체가 생성될 때 자동으로 호출되는 특수한 종류의 메서드
- 일반적으로 클래스의 멤버 변수를 초기화하거나 클래스를 사용하는 데 필요한 설정이 필요한 경우 사용함
- 클래스명과 동일한 메서드명을 가지고, 반환값이 없음
- 생성자가 없을 경우 public 클래스명( ){ }이라는 아무 일도 하지 않는 생성자가 있는 것처럼 동작함
구분 | 코드 |
생성자 정의 | public class 클래스명 { public 클래스명(매개변수) { 명령어; } } |
생성자 호출 | 클래스명 클래스변수 = new 클래스명(매개변수); |
🔟 클래스 상속(Class Inheritance)
☆☆☆
(1) 클래스 상속의 개념
- 어떤 객체가 있을 때 그 객체의 변수와 메서드를 다른 객체가 물려받는 기능
- 자식 클래스를 생성하면 무조건 부모 클래스의 생성자를 실행한 후에 자식 클래스의 생성자를 실행함
(2) 클래스 상속의 문법
class 부모클래스명 {
}
class 자식클래스명 extends 부모클래스명 {
}
※ 자바는 자식 클래스를 생성하면 부모 클래스 생성자를 먼저 방문하고, 그다음에 자식 클래스 생성자를 방문함
(3) 오버로딩(Overloading)
- 동일 이름의 메서드를 매개변수만 다르게 하여 여러 개 정의할 수 있는 기능
< 오버로딩의 특징 >
• 메서드 이름이 같아야 함 • 매개변수 개수가 달라야 함 • 매개변수 개수가 같을 경우 데이터 타입이 달라야 함 • 반환형은 같거나 달라도 됨 |
※ 생성자는 클래스명과 동일한 이름의 메서드이고, 오버라이딩은 부모, 자식 간 동일한 이름의 메서드로, 생성자는 오버라이딩이 안 됨
(4) 오버라이딩(Overriding)
- 하위 클래스에서 상위 클래스 메서드를 재정의할 수 있는 기능
< 오버라이딩의 특징 >
• 오버라이딩하고자 하는 메서드가 상위 클래스에 존재하여야 함 • 메서드 이름은 같아야 함 • 메서드 매개변수 개수, 데이터 타입이 같아야 함 • 메서드 반환형이 같아야 함 |
< 오버라이딩 구문 >
class 부모클래스명 {
public 반환_자료형 메서드명(자료형 변수명) {
}
}
class 자식클래스명 extends 부모클래스명 {
public 반환_자료형 메서드명(자료형 변수명) {
// 부모 클래스의 메서드명, 매개변수가 동일해야 함
}
}
(5) 부모 클래스 접근
- 자바는 super 키워드를 이용하여 상위 클래스의 변수나 메서드에 접근할 수 있음
< 부모 클래스 접근 구문 >
부모 클래스 내부 변수 접근 | super.변수; |
부모 클래스 내부 메서드 접근 | super.메서드(매개변수); |
부모 클래스 내부 생성자 호출 | super(매개변수); |
1️⃣1️⃣ 추상 클래스(Abstract Class)
☆☆
(1) 추상 클래스의 개념
- 미구현 추상 메서드를 1개 이상 가지며, 자식 클래스에서 해당 추상 메서드를 반드시 구현하도록 강제하는 기능
(2) 추상 클래스 구문
abstract class 추상클래스명 {
abstract 자료형 메서드명(); // 메서드 내부는 정의하지 않음
}
class 자식클래스명 extends 추상클래스명 {
자료형 메서드명() {
명령어; // 메서드를 상속받아 메서드 내부를 정의
}
}
※ 메서드 내부를 정의하지 않는다는 것은 메서드 내부에 소스 코드를 이용해서 구현하지 않는다는 것이고, 메서드 내부를 정의한다는 것은 메서드 내부를 소스 코드를 이용해서 구현한다는 것임
1️⃣2️⃣ 인터페이스(Interface)
☆
(1) 인터페이스의 개념
- 자바의 다형성을 극대화하여 개발코드 수정을 줄이고 프로그램 유지보수성을 높이기 위한 문법(일종의 추상 클래스)
- 오직 추상 메서드와 상수만을 멤버로 가질 수 있으며, 그 외의 다른 어떠한 요소도 허용하지 않음
- 구현된 것은 아무것도 없고 밑그림만 그려져 있는 '기본 설계도'라고 할 수 있음
(2) 인터페이스 구문
interface 인터페이스클래스명 {
자료형 메서드명(); // 메서드 내부는 정의하지 않음
}
class 자식클래스명 implements 인터페이스클래스명 {
// interface의 메서드를 상속받아 내부를 정의
}
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 프로그래밍 언어 활용 : 파이썬(2) (0) | 2024.08.14 |
---|---|
[정보처리기사] 프로그래밍 언어 활용 : 파이썬(1) (1) | 2024.08.14 |
[정보처리기사] 프로그래밍 언어 활용 : 자바(2) (0) | 2024.08.14 |
[정보처리기사] 프로그래밍 언어 활용 : 자바(1) (0) | 2024.08.14 |
[정보처리기사] 프로그래밍 언어 활용 : C 언어(4) (0) | 2024.08.13 |