혼자공부중
공부하는 블로그
혼자공부중
전체 방문자
오늘
어제
  • 분류 전체보기 (111)
    • 자격증 (49)
      • 정보처리기사 실기 (49)
    • JAVA (18)
    • DB (0)
    • 알고리즘 문제 풀이 (11)
      • 프로그래머스 (11)
    • Front (0)
      • HTML (0)
      • CSS (0)
      • Javascript (0)
    • 패스트캠퍼스 강의 (33)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 프로그래머스
  • 관계형데이터베이스
  • Java
  • 2022정보처리기사
  • 정보처리기사 실기 정리
  • 자바
  • 코딩테스트
  • 알고리즘
  • 정보처리기사
  • 메소드
  • 정보처리기사 실기
  • 반복문
  • DBMS
  • 2022정보처리기사필기
  • 수제비
  • SQLD
  • 상속
  • 애플리케이션테스트
  • 변수
  • 정보처리기사 필기 정리
  • 데이터베이스
  • 시나공
  • 데이터모델
  • UI
  • 배열
  • 인터페이스
  • 객체지향
  • 정보처리기사 필기
  • 2022정보처리기사실기
  • 패스트캠퍼스 #포트폴리오 #직장인자기계발 #환급챌린지 #포트폴리오챌린지 #패스트캠퍼스후기 #초격차패키지 #오공완

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
혼자공부중
자격증/정보처리기사 실기

35. [프로그래밍 언어 활용] 클래스(Class)

자격증/정보처리기사 실기

35. [프로그래밍 언어 활용] 클래스(Class)

2022. 4. 1. 22:40
수제비 2022 정보처리기사 실기 수험서를 보고 공부한 기록입니다.

  • 클래스는 객체 지향 프로그래밍(OOP; Object-Oriented Programmin)에서 특정 객체를 생성하기 위해 변수와 메서드를 정의하는 틀이다
  • C 언어는 명령형 프로그래밍으로 클래스를 지원하지 않는다

👉접근 제어자(Access Modifier)

접근 제어자는 지정된 클래스, 변수, 메서드를 외부(같은 패키지이거나 다른 패키지)에서 접근할 수 있도록 권한을 설정하는 기능이다

▼ 접근 제어자 종류

  • public 
    • 외부의 모든 클래스에서 접근이 가능한 접근 제어자
  • protected
    • 같은 패키지 내부에 있는 클래스, 하위 클래스(상속받은 경우)에서 접근이 가능한 접근 제어자
    • 자기 자신과 상속받은 하위 클래스 둘 다 접근이 가능한 접근 제어자
  • default
    • 접근 제어자를 명시하지 않은 경우로 같은 패키지 내부에 있는 클래스에서 접근이 가능한 접근 제어자
    • 자바에만 존재하는 접근 제어자
  • private
    • 같은 클래스 내에서만 접근이 가능한 접근 제어자

👉클래스 사용

1. 클래스 정의

  • 클래스는 변수와 메서드(함수) 형태로 구성되어 있다
  • 클래스에서 변수는 변수 선언과 동일하고, 메서드는 사용자 정의함수와 문법이 동일하다
  • 파이썬은 별도로 변수 선언을 하지 않기 때문에 메서드 형태로 구성되어 있다

▼ 자바 클래스 정의

public class 클래스명{
	private 변수_타입 변수명;
	public 반환_데이터_타입 메서드명(데이터_타입 변수명, ...){
		명령어;
		return 반환값;
	}
}

▼ 파이썬 클래스 정의

class 클래스명:
	def 메서드명(self, 변수명, ...):
		명령어
		return 반환값
  • 파이썬에서는 함수명에 입력받을 값(매개변수) 앞에 self라는 키워드를 적어야 한다

2. 자신 클래스 참조

① this 포인터

  • this 포인터는 현재 객체를 가리키는 포인터이다
  • 자바에서 사용하는 것으로 클래스 내부의 변수와 함수를 가리킬 수 있다
this.변수;
this.함수(매개변수);

② self

  • self는 현재 객체를 가리키는 포인터이다
  • 파이썬에서 사용하는 것으로 클래스 내부의 변수와 함수를 가리킬 수 있다
self.변수명;
self.함수명(매개변수);

3. static 메서드

  • 클래스가 메모리에 올라갈 때 자동적으로 생성되는 메서드이다
  • 인스턴스를 생성하지 않아도 호출이 가능하게 된다

4. 클래스 선언

  • 클래스를 일반변수로 선언한 경우 선언함과 동시에 생성자가 호출되고, 일반변수로 선언한 곳에서 함수가 종료되면 소멸자가 호출된다

▼ 자바 클래스 선언

클래스 클래스변수=new 클래스(매개변수); //생성시
클래스변수.finalize(); //소멸시

▼ 파이썬 클래스 선언

클래스변수=클래스(매개변수) # 생성시
del 클래스변수	# 소멸시

👉생성자(Constructor)

  • 생성자는 해당 클래스의 객체가 생성될 때 자동으로 호출되는 특수한 종류의 메서드이다
  • 생성자는 일반적으로 클래스의 멤버 변수를 초기화하거나 클래스를 사용하는 데 필요한 설정이 필요한 경우 사용한다
  • 자바에서는 클래스 명과 동일한 메서드명을 가지고, 반환 값이 없다
  • 파이썬에서는 __init__ 이라는 메서드명을 사용하고, 첫 번째 매개변수로 self를 적어주며, 반환 값이 없다

▼ 자바에서 사용하는 생성자

public class 클래스명{
	public 클래스명(데이터_타입 변수명, ...){
		명령어;
	}
}

▼파이썬에서 사용하는 생성자

class 클래스명:
	def __init__(self, 변수명, ...):
		명령어

👉소멸자(Destructor)

  • 소멸자는 객체의 수명이 끝났을 때 객체를 제거하기 위한 목적으로 사용되는 메서드이다
  • 자바에서는 finalize라는 메서드를 사용하며, 반환 값이 없다
  • 파이썬에서는 __del__이라는 메서드명을 사용하고, 첫 번째 매개변수에 self를 적어주며, 반환 값이 없다

▼ 자바에서 사용하는 소멸자

public class 클래스명{
	public void finalize(매개변수){
		명령어;
	}
}

▼ 파이썬에서 사용하는 소멸자

class 클래스명:
	def __del__(self):
		명령어

👉상속(Inheritance)

  • 상속은 어떤 객체가 있을 때 그 객체의 변수와 메서드를 다른 객체가 물려받는 기능이다
  • 자식 클래스를 생성하면 무조건 부모 클래스의 생성자를 실행한 후에 자식 클래스의 생성자를 실행한다

▼ 자바 상속

class 부모_클래스명{
}
class 자식_클래스명 extends 부모_클래스명{
}

▼ 파이썬 상속

class 부모_클래스명:
	...
class 자식_클래스명(부모_클래스명):
	...

1. 오버로딩(Overloading)

  • 오버로딩은 동일 이름의 메서드를 매개변수만 다르게 하여 여러 개 정의할 수 있는 기능이다
  • 파이썬에서는 오버로딩 기능을 지원하지 않는다
  • 오버로딩 특징은 다음과 같다
    • 메서드 이름이 같아야 한다
    • 매개변수 개수가 달라야 한다
    • 매개변수 개수가 같을 경우 데이터 타입이 달라야 한다
    • 반환형은 같거나 달라도 된다

2. 오버라이딩(Overriding)

  • 오버라이딩은 하위 클래스에서 상위 클래스 메서드를 재정의할 수 있는 기능이다
  • 오버라이딩 특징은 다음과 같다
    • 오버라이드하고자 하는 메서드가 상위 클래스에 존재하여야 한다
    • 메서드 이름은 같아야 한다
    • 메서드 매개변수 개수, 데이터 타입이 같아야 한다
    • 메서드 반환형이 같아야 한다

▼ 자바 오버라이딩

class 부모_클래스명{
	public 반환_데이터_타입 메서드명(데이터_타입 변수명){
	}
}

class 자식_클래스명 extends 부모_클래스명{
	public 반환_데이터_타입 메서드명(데이터_타입 변수명){
		//부모 클래스의 메서드명, 매개변수가 동일해야 함
	}
}

▼ 파이썬 오버라이딩

class 부모_클래스명
	def 메서드명(self, 변수명):
		#명령어

class 자식_클래스명(부모_클래스명)
	def 메서드명(self, 변수명):
		#명령어
		#부모 클래스의 메서드명, 매개변수의 개수가 동일해야 함

3. 상위 클래스 접근

자바와 파이썬은 super 키워드를 이용하여 상위 클래스의 변수나 메서드에 접근할 수 있다

▼ 자바 상위 클래스 접근

super.메서드명()

▼ 파이썬 상위 클래스 접근

super().메서드명()

👉추상 클래스

추상 클래스는 미구현 추상 메서드를 한 개 이상 가지며, 자식 클래스에서 해당 추상 메서드를 반드시 구현하도록 강제하는 기능이다

▼ 자바 추상 클래스

abstract class 클래스명{
	abstract 데이터_타입 메서드명();
}

▼ 파이썬 추상 클래스

class 클래스명:
	def 메서드명(self):
		pass

👉인터페이스

  • 인터페이스는 자바의 다형성을 극대화하여 개발코드 수정을 줄이고 프로그램 유지보수성을 높이기 위한 문법이다.(인터페이스는 일종의 추상 클래스이다)
  • 오직 추상 메서드와 상수만을 멤버로 가질 수 있으며, 그 외의 다른 어떠한 요소도 허용하지 않는다
  • 인터페이스는 구현된 것은 아무것도 없고 밑그림만 그려져 있는 '기본 설계도'라고 할 수 있다

▼ 자바 인터페이스

interface 클래스명{
	데이터_타입 메서드명();
}
저작자표시

'자격증 > 정보처리기사 실기' 카테고리의 다른 글

37. [프로그래밍 언어 활용] 라이브러리 활용  (0) 2022.04.01
36. [프로그래밍 언어 활용] 프로그래밍 언어의 언어별 특성  (0) 2022.04.01
34. [프로그래밍 언어 활용] 재귀 함수  (0) 2022.04.01
33. [프로그래밍 언어 활용] 사용자 정의 함수  (0) 2022.04.01
32. [프로그래밍 언어 활용] 사용자 정의 자료형 활용  (0) 2022.04.01
  • 👉접근 제어자(Access Modifier)
  • 👉클래스 사용
  • 1. 클래스 정의
  • 2. 자신 클래스 참조
  • 3. static 메서드
  • 4. 클래스 선언
  • 👉생성자(Constructor)
  • 👉소멸자(Destructor)
  • 👉상속(Inheritance)
  • 1. 오버로딩(Overloading)
  • 2. 오버라이딩(Overriding)
  • 3. 상위 클래스 접근
  • 👉추상 클래스
  • 👉인터페이스
'자격증/정보처리기사 실기' 카테고리의 다른 글
  • 37. [프로그래밍 언어 활용] 라이브러리 활용
  • 36. [프로그래밍 언어 활용] 프로그래밍 언어의 언어별 특성
  • 34. [프로그래밍 언어 활용] 재귀 함수
  • 33. [프로그래밍 언어 활용] 사용자 정의 함수
혼자공부중
혼자공부중
대단한 목적보다는 혼자 공부하는 것에 의미를 두려고 합니다.

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.