티스토리 뷰
728x90
개념
객체(Object)
- 모든 실재하는 대상
- 데이터와 관련된 알고리즘(메서드)를 하나의 단위로 묶어 놓은 것
- 객체들은 메서드를 통해 상호작용.
- 객체지향 프로그래밍(OOP): 객체 단위로 코드를 작성하며, 객체 간의 상호작용으로 프로그램을 설계
- 객체 모델링: 현실세계의 객체를 SW 객체로 설계하는 것
클래스(Class)
- 클래스는 개별 객체를 만들기 위한 설계도
- 객체는 붕어빵이라고 할 때, 클래스는 붕어빵틀을 의미.
인스턴스(Instance)
- 특정 클래스를 통해 생성된 하나의 객체(실제 메모리에 생성)
- 인스턴스는 클래스의 한 사례
객체지향 프로그래밍의 특징
Abstraction(추상화)
- 객체의 불필요한 세부 사항을 숨기고, 필요한 인터페이스만을 제공, 구현에 의존하지 않는 설계
- 오버라이딩(overriding): 부모 클래스로부터 상속받은 클래스를 자식 클래스에서 재정의 할 수 있다. (메소드의 이름, 매개 변수, 리턴 값은 부모 클래스와 같아야 한다.)
- 오버로딩(overloading): 같은 이름을 가진 메서드가 있더라도 매개변수의 수, 타입이 다르면 같은 이름의 메서드를 정의 할 수 있다. (리턴 값만 다른 경우에는 오버로딩할 수 없다.)
Polymorphism(다형성)
- 상속 또는 구현 관계에 있을 때 객체들이 맥락에 따라 서로 다른 방식으로 동작하는 것
Encapsulation(캡슐화)
- 객체의 데이터와 메서드를 하나로 묶고, 외부로부터 객체의 세부 사항을 숨기는 것
- 데이터 보호 (data protection) , 데이터 은닉 (data hiding)
Inheritance(상속)
- 기존의 설계도를 재사용(확장), 하나의 클래스가 다른 클래스의 속성과 메서드를 물려받는 것
객체지향 프로그래밍의 장점
- 코드의 재사용성
- 유지보수성
- 유연성과 확장성
클래스
함수
- 특정 작업을 수행하는 문장들의 모임
- 실행 가능한 코드의 단위
- 구성: 반환 타입(리턴 값), 함수 이름, 매개변수, 함수 몸체(기능)
클래스
- 객체를 생성하는 데 사용되는 틀 혹은 청사진(blueprint)
- 사용자 정의 "데이터 타입"
구성 요소
- 멤버 변수(member field): 객체의 속성, 상태
- 멤버 메서드(member method): 멤버 메서드, 객체의 동작, 행위(로직)
- 생성자(Constructor): 객체가 생성될 때 자동으로 호출되는 메서드
- 중첩 클래스(Nested Class): 클래스 내부에 존재하는 클래스
클래스 선언
[접근 제어자] [final:abstract] class 클래스 이름{
//멤버 변수, 필드 (속성 정의)
[접근 제어자] [static] [final] 데이터 타입 변수 이름 [= 초기값];
//생성자
[접근 제어자] 클래스 이름([매개변수들]){
생성자 본문
}
//메서드 (기능 정의)
[접근 제어자] [static] [final] [반환 타입:void] 메서드 이름([매개변수들]){
메서드 본문
}
}
- 접근 제어자: 클래스, 멤버 변수, 생성자, 메서드에 대한 접근 권한을 설정.
- public: 모든 클래스에서 접근 가능
- protected: 같은 패키지 내에서와 상속받은 클래스에서 접근 가능
- private: 해당 클래스 내에서만 접근 가능
- final: 클래스, 메서드, 변수에 적용 가능
- 클래스: 상속할 수 없는 클래스.
- 메서드: 오버라이드할 수 없는 메서드.
- 변수: 값을 변경할 수 없는 상수
- abstract: 클래스와 메서드에 적용 가능.
- 클래스: 구현되지 않은 추상 클래스가 되어 직접 인스턴스를 생성할 수 없으며, 반드시 서브클래스에서 상속받아야 한다.
- 메서드: 구현되지 않은 추상 메서드가 되어 서브클래스에서 반드시 구현해야 한다.
- static: 클래스의 멤버 변수나 메서드에 적용되며, 해당 멤버는 클래스 수준에서 공유된다.
- 데이터 타입: 변수의 데이터 유형을 지정 EX) int, float, double, boolean, char
- 반환 타입: 메서드가 반환하는 값의 데이터 유형을 지정. 반환 타입이 void인 경우 메서드는 값을 반환하지 않는다.
- 매개변수: 메서드나 생성자가 호출될 때 전달받는 입력 값. 각 매개변수는 데이터 타입과 변수 이름으로 정의.
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- PANDAS
- 인프런
- 프로그래머스
- 웹
- 오블완
- ssafy기자단
- 인프런강의
- 제주코딩베이스캠프
- 코딩테스트
- 백준
- django
- 알고리즘이론
- 알고리즘
- 위니브
- it도서큐레이션
- 위니브엠베서더
- 생성형 AI
- 티스토리챌린지
- 파이썬
- numpy
- 더오름
- SSAFYcial
- 웹개발
- dataframe
- 인프런강의후기
- SSAFY
- 전자회로
- Python
- 웹프로그래밍
- 백준알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함
250x250