===== 객체지향 프로그래밍(oop)
데이터를 객체로 취급하여 프로그램에 반영한 것으로 객체와 객체간의 통신을 통해 프로그램이 구현된 것을 말한다.
특징으로는 상속과 인터페이스(계층성), 다형성과 사용편의성(모듈화), 캡슐화, 정보은닉, 자료추상화, 동적 바인딩이 있다.
===== object (객체)
객체지향 프로그래밍에서 데이터(변수)와 그에 관련된 함수를 포함한 개념으로 개체, 속성, 메서드로 구성된 클래스의 인스턴스를 의미한다.
===== 오버로딩 & 오버라이딩(재정의)
오버로딩은 같은 이름의 메소드를 여러 개 정의한 것으로 매개 변수의 타입이 다르거나 개수가 달라야 한다.
오버라이딩은 상속에서 나온 개념으로 상위 클르새의 메서드를 하위 클래스에서 재정의하는 것을 말한다.
===== interface
일종의 추상 클래스로 오직 추상메서드와 상수만을 멤버로 갖는다.
Implements 키워드를 사용하여 인터페이스에 정의된 메소드를 구현한다.
상속의 관계가 없는 클래스간 서로 공동되는 로직을 구현하여 쓸 수 있도록 한다.
===== Abstract
추상메소드를 하나 이상 가진 클래스, 자신의 생성자로 객체 생성 불가능하며, 하위 클래스를 참조하여 상위 클래스의 객체를 생성한다. 하위 클래스를 제어하기 위해 사용
===== extends
extends 자식 클래스는 부모 클래스의 기능을 사용한다.
===== implements
implements의 가장 큰 특징은 이렇게 부모의 메소드를 반드시 오버라이딩(재정의)해야 한다.
또한 이 implements는 다중상속을 대신해주며, interface 상속에 사용된다.
interface가 class를 사용할 땐 implements를 쓸 수 없다.
implements한 클래스는 implements의 내용을 다 사용해야 한다.
===== extends 와 implements 차이
extends는 클래스 한 개만 상속 받을 수 있다. implements는 여러개 사용 가능하다.
extends는 클래스를 확장하는 거고 implements는 인터페이스를 구현하는 것이다.
인터페이스와 보통 클래스의 차이는 인터페이스는 정의한 메소드를 구현하지 않아도 된다.
인터페이스를 상속받는 클래스에서 인터페이스에 정의된 메소드를 구현하면 된다.
===== JVM
자바는 java virtual machine 위에서 돌아가기 때문에 운영체제 종류에 상관없이 돌아간다.
===== DAO와 DTO
DAO(data access object) 실직적으로 db에 접근하는 객체를 말한다.
사용자는 자신이 필요한 Interface를 DAO에게 던지고 DAO는 이 인터페이스를 구현한 객체를 사용자에게 편리하게 사용 할 수 있도록 반환해준다.
===== DTO(Data Transfer Object)
일반적인 DTO는 로직을 갖고 있지 않다.
순수한 데이터 객체이며 속성과 그 속성에 접근하기 위한 getter, setter 메소드만 가진 클래스를 말한다.
간단히 계층 간의 데이터 전달에 사용하는 데이터 객체들을 말한다.
'JAVA' 카테고리의 다른 글
[Java] #12. 자바 어노테이션(Annotation) (0) | 2021.02.06 |
---|---|
[java] 프로그래머스-완전탐색(모의고사) (0) | 2021.02.03 |
[JAVA] #1.JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가 (0) | 2021.01.30 |
myBatis 설정(Properties 파일 설정 방식) (0) | 2020.02.17 |
ServletContext, HttpSession, HttpServletRequest 차이점 (0) | 2020.02.10 |