-
[Java] 객체지향의 특성과 예제P.study 2020. 5. 8. 13:26
오늘은 JAVA 코딩을 통한 객체 지향 프로그래밍 (OOP : Object Oriented Programming) 의 특징을 알아볼 것이다!
특징은 상속, 다형성, 추상화, 캡슐화, 정보은닉이 있으며 이것에 대한 간단한 예제를 실습해 보았다.
< 객체 지향 언어의 특징 >
-
상속 (JAVA는 단일상속만을 지원)
: 기존의 클래스를 이용해서 새로운 클래스를 만들어 변수와 메서드를 추가로 정의한 것
(객체들 사이의 계층적 구조를 이룰 수 있음)
**상속은 코드를 간결하게 하여 코드의 재사용성을 높이는 객체지향의 핵심 개념**
-
다형성
: 하나의 인터페이스를 이용해 서로 다른 구현을 제공함
-
메서드 오버로딩 : 한클래스 안에 같은 이름의 메서드를 여러개 정의하면서, 그 인자의 갯수나 유형을 자르게 해놓은 형태
-
메서드 오버라이딩 : 상속 관계에 있는 하위 클래스가 상위 클래스가 가지고 있는 메서드를 재정의 하는 것 (재정의된 메서드가 선언된 형태는 상위 클래스에서 선언된 것과 같음)
-
-
추상화
: 현실 세계에 존재하는 다양한 객체들의 공통된 특성을 모아 일반화해 놓은것
-
캡슐화
: 변수와 메서드를 하나의 추상화된 클래스로 묶는 과정을 의미함
(객체가 제공하는 메서드를 통해 객체를 이용하고, 데이터가 실제로 어떻게 처리되는지는 알 필요 없음)
-
정보 은닉
캡슐화된 변수나 메서드를 선택적으로 공개하거나 숨길 수 있음
-
# 코드
// 상속 extends public class Car { String name; int currentGear; public void changeGrear(int gear) { System.out.println(" 기어를 "+ gear +"단으로 변경한다."); currentGear = gear; } public String get_CurrentState() { return name + "의 현재 기어 상태:" + currentGear; } } public class Taxi extends Car { int fare; int passenger; }
// 다형성 // 1.오버라이딩 >> 출력 : 기어를 2 변경후 고정한다. public class MyTaxi extends Taxi { public void changeGrear(int gear) { System.out.println(" 기어를 " +gear+" 변경후 고정한다"); currentGear = gear; } public static void main(String[] args) { MyTaxi taxi = new MyTaxi(); taxi.name = "24바 3982"; taxi.currentGear = 1; taxi.fare = 6200; taxi.passenger = 2; taxi.changeGrear(2); taxi.get_CurrentState(); } }
// 추상화 (abstract) abstract class Car { public void CurrentState () { System.out.println(" 움직이고 있습니다."); } } class Bus extends Car { String color; public void Color(String color) { System.out.println("버스는 "+color+" 입니다."); } } public class MyBus { public static void main(String[] args) { Bus bus = new Bus(); bus.Color("초록색"); bus.CurrentState(); } }
// 캡슐화 (은닉 private) public class Car { public String name; private int currentSpeed; public void start_Engine() { System.out.println(name+"의 시동을 켠다."); currentSpeed = 1; } private int CurrentSpeed() { currentSpeed = currentSpeed * 10; return currentSpeed; } public String get_CurrentSpeed() { return name + "의 속도는 "+ CurrentSpeed(); } }
# 구현모습
자바란 이런것이구나..ㅎㅎ 신기하당
앞으로 더 공부해야겠다!
'P.study' 카테고리의 다른 글
[알고리즘] 최소 신장 트리 개념 (0) 2020.06.17 [알고리즘] 그리디 알고리즘 개념 & C언어.ATM(11399번) (0) 2020.06.10 git. 레파지토리 올리기 (1) 2020.04.12 PC 카카오톡 링크 연결이 안될때.. (3) 2020.04.09 Training 2020 실습 (0) 2020.01.30 -