🥞 BE
home

OOP 기본 개념

Date
2024/07/17
Category
Programming Language
Tag
Java
Detail

1. 추상화(Abstraction)

어떤 문제에서 주된 특징을 부각시켜 표현하고, 나머지 부분은 과감하게 생략하는 것.
→ 한 물체를 대표하는 속성(명사)과 기능(동사)을 추출해 내는 것. 속성은 멤버변수로, 행위 또는 기능은 메소드로 표현한다.

2. 은닉화(Encapsulation)

데이터를 캡슐화하고, 데이터에 접근할 때는 메소드로. [setXXX()/getXXX()]
class House { private int room; public void setRoom(int r) { room = r; } public int getRoom() { return room; } } }
Java
복사

3. 다형성(Polymorphism)

여러가지 형태를 가질 수 있는 성질을 의미. 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현해 놓은 특징.
class Parent { int x; int y; } class Sub extends Parent { int z; } class Sub2 extends Parent { int z; } Parent p = new Parent(); Sub s = new Sub(); Parent pt = new Sub(); Parent pt2 = new Sub1(); interface MyInter { void dbConnect(); } class MyInterImpl implements MyInter { public void dbConnect() { // MySQL과 연결하는 로직 } } class MyOracle implements MyInter { public void dbConnect() { // Oracle DB와 연결하는 로직 } } MyInter mi = new MyInterImpl(); // new MyOracle(); 이런 식으로 그때그때 변경 적용 가능. mi.dbConnect();
Java
복사
1.
오버로딩(Overloading)
메소드 이름은 동일하게 주되, 데이터 타입, 갯수, 순서 등만 다르게 줌. → 중복 정의 / 다중 정의
오버로딩 하려는 메소드 이름이 같아야한다.
매개변수의 데이터형이 다르거나, 갯수가 다르거나, 순서가 달라야한다.
반환타입은 신경 안써도 된다.
2.
오버라이딩(Overriding)
부모로부터 상속 받은 메소드를 재정의해서 사용하는 것. → 재정의

this()의 사용