- 객체
- 동일한 성질의 데이터와 메서드를 모아두고 필요할 때 언제든지 이용할 수 있게 만들어 놓은 것
- 객체지향
- 객체의 성격을 지향하는 프로그래밍
- 객체들간의 메시지를 주고 받는 구조
- 독립적, 대규모
- 클래스
- 데이터와 메서드가 결합
- 객체를 만들기 위한 틀
- 유하사나 각각의 특징을 지닌 객체들의 속성을 묶어 놓은 집합체
- ex) '학생'이 클래스, '영희'와 '철수'는 객체
- 생성자
- 객체 지향 프로그래밍에 쓰이는 객체 초기화 함수
- 객체의 생성 시에만 호출되어 메모리 생성과 동시에 객체의 데이터를 초기화하는 역할
- 오버라이딩
- 기촌에 있는 메서드를 재정의하는 것으로 매개변수의 개수나 데이터 형식이 같아야 함
- 상위클래스 또는 인터페이스의 메서드를 하위 클래스에서 재정의 하는 것
- 오버로딩
- 메서드 이름은 같지만 매개변수의 개수나 데이터 형식을 다르게 정의하는 것
- 같은 메서드의 이름을 사용 할 수 있으나 매개변수의 개수나 자료형이 달라야 함
- 전역변수 (=멤버변수)
- 해당 클래스 범위 안의 모든 메서드에서 사용이 가능한 변수
- 지역변수 (=로컬변수)
- 해당 클래스 내부에서만 사용되는 변수
- 추상화
- 객체의 공통적인 특징(속성과 기능)을 뽑아내는 것
- 구현하는 객체들이 가진 공통적인 데이터와 기능을 도출
- 상속
- 클래스간의 공통된 속성과 메서드를 상위 클래스로 정의하고 하위 클래스에서 상속받아 사용
- 클래스를 계층적으로 분류하여 효율적인 관리가 가능
- 재사용성과 확장을 통한 소프트웨어의 생산성을 향상시킴
- 다형성
- 여러가지 데이터를 다룰 수 있는 특성을 뜻함
- 조상클래스의 인스턴스를 이용하여 자손타입을 다룬다거나, 메서드 오버로딩을 통해 동일한 이름의 메서드를 이용하여 다양한 형태의 파라미터를 다루는 것
- 상위(추상) 클래스 또는 인터페이스의 참조변수가 하위 클래스를 참조할 수 있음
- 데이터 객체를 관리할때 공통된 규약으로 관리가능
- 유지보수 및 확장성이 높아짐
- 인터페이스
- 공통적인 요소를 미리 정의함으로써 보다 빠른 프로그래밍과 표준화하여 사용이 가능하며, 다중 상속이 되지 않는 java에서 인터페이스를 통해 구현 가능하도록 함
- 클래스들 간의 체계를 잡아 주기 위해 다형성, 협업, 모두 추상 메서드로 하위클래스에서 모든 메서드를 무조건 구현
- 무조건 오버라이딩 해야함
- 상속을 주어야지만 그 자식클래스를 통해 사용이 가능
- 작업지시서와 같음
- 다형성
- 캡슐화
- 객체가 맡은 역할을 수행하기 위한 하나의 목적을 위해 데이터와 기능을 묶음
- public, protected, default, private 데이터의 기능을 캡슐로 보호
- 배열
- 고정크기
- 하나의 자료형만 저장이 가능
- 컬렉션
- 가변적 크기
- 복수의 자료형을 저장
- 예외처리(Exception)
- 컴파일 오류 외에 에러가 발생하더라도 프로그램이 정상적으로 종료 가능하게 함
- Thread
- 프로세스내에서 수행되는 작업의 흐름
- 멀티쓰레드
- 두가지 이상의 작업을 실행할 수 있어서 자원을 효율적으로 이용할 수 있음
- dead lock 및 동기화에 대한 철저한 검증이 필요
- 자바에서 멀티쓰레드 구현 방법
- Thread 클래스를 상속 -> 단일 상속만 된다는 장점이 있음
- Runnable 인터페이스를 상속 -> 다중 상속이 가능함
- Java 컬렉션의 대표 인터페이스
- List : 순서가 있는 데이터의 집합으로 데이터의 중복을 허용 -> ArrayList, Vector 등
- Set : 순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않음
- Map : 키와 값으로 이루어 짐, 순서 유지x, 키 중복x, 값 중복 o -> HasyMap, Properties 등
- 접근제어자
- private : 같은 클래스 내에서만 접근 가능
- Default : 같은 패키지 내에서만 접근 가능
- Protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손 클래스에서 접근 가능
- Public : 접근 제한 없음
- public > protected > default > private
'용어정리' 카테고리의 다른 글
MVC 패턴에 대하여 (0) | 2016.09.28 |
---|---|
Post 와 Get의 차이 (0) | 2016.09.28 |
쿠키(cookie)와 세션(session)의 차이 (0) | 2016.09.28 |
Servlet과 JSP의 차이점 (0) | 2016.09.28 |
신입 웹개발자 면접을 위한 스프링 정리 (0) | 2016.09.28 |
댓글