일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리스트 모달창
- 형변환
- 객체협력
- downcasting
- 다운캐스팅
- static
- 템플릿
- 스프링 모달창
- 다중 모달창
- 싱클톤패턴
- 모달창 여러개
- react
- Java
- AOP란?
- GROUP BY
- 사용자 데이터그램 프로토콜
- Servlet 맵핑
- spring annotation
- order by
- 이클립스 오라클 연동
- 상속
- IP
- oracle 연동
- static메서드
- 오라클 비교연산자
- 깃 명령어
- static 예제
- 추상 메서드
- SUB Query
- singleton
- Today
- Total
모든지 기록하자!
[Java] 객체지향 프로그래밍(OOP) 과 클래스(Class) 본문
객체 지향 프로그래밍(OOP, Object-Oriented Programming)
객체 지향 프로그래밍에서는 모든 데이터를 객체(object)로 취급하며, 이러한 객체가 바로 프로그래밍의 중심이 된다.
객체(object)란 간단히 이야기하자면 물리적으로 존재하거나 (자동차, 책, 사람) 추상적인 것 (회사, 날씨) 중에서 자신의 속성과 동작을 가지는 모든 것이라고 할 수 있다. 이러한 객체의 상태와 행동을 구체화하는 형태의 프로그래밍이 바로 객체 지향 프로그래밍입니다.
객체지향 프로그래밍 특장점
-클래스를 이용해 연관있는 함수와 변수를 하나로 묶어 객체(인스턴스)를 생성해 사용함
-객체지향 프로그래밍 에서는 프로젝트를 독립적인 객체 단위로 분리해서 작업할 수 있기 때문에 여러 개발자와 협업해 규모가 큰 프로젝트를 진행할 수 있으며 유지보수 측면도 뛰어나다.
장점
-코드의 재활용성이 높음
-코딩이 절차지향보다 간편함
-디버깅이 쉬움
단점
-처리속도가 절차지향보다 느림
-설계에 많은 시간소요가 들어감
Class란?
특정 객체를 생성하기 위해 변수와 메서드를 정리하는 일종의 틀
Class의 구성요소
1. field
1) 객체를 사용할때 지속적으로 사용되는 데이터
2) 접근지정자를 주로 private로 지정
필요에 의해 다른 접근 지정자로 쓸 수 있다.
2. constructor
1) 객체 생성시 자동호출되는 함수
2) 기본기능 : 객체 등록해주는 역할
사용자기능 : 객체 생성 시 자기가 원하는 메모리 구조로 또는 값을 세팅하고 싶을 때.
3) 접근지정자를 주로 public으로 지정
4) 오버로딩이 가능
5) 리턴타입이 없다.
함수명이 클래스명과 동일
6) 명시적으로 만들지 않을 경우 default constructor를 제공한다.
7) 명시적으로 생성자를 만 들 경 우 디폴트 생성자는 존재하지 않는다.
3. method
1) instance method , static method
주로 instance method 사용
static method는 모든 객체를 공유하고자 할 때.
2) 접근지정자 주로 public으로 지정
외부와 내부를 연결하는 목적
(외부에서 필드를 사용할 수 있게 해주는 중간 역할)
3) setter / getter를 기본으로 제공함
외부에서(필드) 값을 주고/가져오는 것
4) 오버로딩이 가능
5) this를 가지고 있는 메서드 -> instance method
this를 가지고 있지 않는 메소드 -> static method
'Java' 카테고리의 다른 글
[Java] 배열을 이용한 예제( 1차원배열의 합, 2차원배열의 합, 잔돈구하기) (0) | 2021.05.12 |
---|---|
[Java] static 변수 (0) | 2021.05.12 |
[Java] 객체간의 협력(대중교통 이용) (0) | 2021.05.11 |
[Java] 배열을 이용한 성적 처리 프로그램 (0) | 2021.05.11 |
반복문 - for 문과 예시(1~5까지 합을구하기, 구구단출력) (0) | 2021.05.11 |