본문 바로가기

Java/Java 활용 개념 정리20

[Java] 객체 지향의 꽃! 다형성(message polymorphism) 🔍일상생활에서 보는 다형성! 여러가지의 브랜드의 다양한 TV(자식클래스)가 있다고 해보자. 그 tv(부모클래스)를 작동하는 리모콘이 있다. 리모콘을 통해 TV의 볼륨(메소드)을 조절하려고 한다. ↗ ➡ 삼성 TV ➡ 🆗⬆⬆⬆⬆⬆⬆⬆ 리 모 콘 ➡ 볼륨 up ➡ Dev TV ➡ 1️⃣2️⃣3️⃣ ↘ ➡ 엘지 TV ➡ ⏫⏫⏫ 같은 볼륨up 이라는 메서드를 구현했어도 각 TV마다 화면에 각자마다의 표현(재정의)으로 보일것이다. 💡 1. 다형성 (Message polymrphism) 상속 관계에 있는 클래스에서 상위클래스가 동일한 메세지로 하위클래스들을 서로 다르게 동작시키는 객체지향의 원리(개념) 이러한 상속 관계에서 message polymorphism(다형성)의 경우를 살펴보자. 상위 클래스인 Animal.. 2023. 2. 4.
[Java] 재정의(Override) 💡 1. Override(재정의) 강아지.class 에게 먹다 기능 eat() 메서드는 "개처럼 먹다" 를 출력하고 고양이.class 에게 먹다 기능 eat() 메서드는 "고양이 처럼 먹다" 를 출력할 때 이 공통된 메서드를 animal(부모클래스)에서 eat을 공동 관리 했을때 강아지와 고양이 클래서에서 eat 메서드를 상속받아서 사용할 때 각 클래스 특징에 맞게 개처럼 먹다 와 고양이 처럼 먹다 를 출력할 수 있게 해주는게 Override ( 재정의) 라고 한다. Override(재정의) ➡상속관계에서 상속 받은 하위 클래스가 상위 클래스의 동작을 수정하는 것 부모 클래스의 eat() 메서드는 dog나 cat 과는 다르게 ? 로 추상적으로 되어있다. 이때 dog 나 cat 클래스에서 상속받은 eat(.. 2023. 2. 3.
[Java] 클래스 부분 최종 정리 💡 1. class 의 정의 class DataType 측면 : 새로운 자료형을 만드는(설계하는) 도구 = 모델링 도구 OOP(객체지향)측명 : 객체의 상태 정보와 행위 정보를 추출하여 캡슐화 하는 도구(구조화 및 은닉화) Model : class 를 Model 이라고도 부른다. (역할이 정해지므로) 🔍우리가 만드는 Model의 종류(3가지는 거의 대부분 만들게 되어 있다.) 1. DTO(Data Transfer Object): 데이터 구조, 데이터를 담는 역할, 이동하기 위해서 데이터를 담음 - VO(Value Object) : 객체를 담아서 하나의 값(덩어리)으로 취급한다는 의미다. 2. DAO(Data Access Object) : 데이터를 처리하는 역할( 비지니스 로직), 데이터베이스와 CRUD하.. 2023. 2. 3.
[Java] 메서드 오버로딩(Method Overloading) 💡 메서드의 오버로딩(Method Overloading) 오버로딩은 메서드의 이름이 동일하지만 매개변수의 종류와 개수가 다른 경우 다른 메서드로 인식하게 해주는 기술이다. 이러한 메소드 오버로딩을 사용함으로써 메소드에 사용되는 이름을 절약할 수 있습니다. 그리고 메소드를 호출할 때 전달해야 할 매개변수의 타입이나 개수에 대해 크게 신경을 쓰지 않고 호출할 수 있다. 메소드 오버로딩은 객체 지향 프로그래밍의 특징 중 하나인 다형성을 구현하는 방법 중 하나이다. 메서드의 오버로딩은 정적 바인딩이므로 아무리 선언된 동일한 이름의 오버로딩 메서드가 많아도 속도에 영향을 주지 않는다. 그 이유는 오버로딩된 메서드들은 정적바인딩으로 동작하여 호출할 메서드를 찾는게 아닌 컴파일 시점에서 이미 호출되는 메서드가 결정되.. 2023. 2. 2.
[Java] 잘 설계된 클래스(객체) 어떠한 객체를 만든다는 것은 그 객체의 공간에 접근해 데이터를 저장하거나 빼오기 위함인데 어떠한 제약이 없으면 기억공간에 잘못된 데이터를 넣어도 아무런 문제가 되지 않는다. 객체의 상태정보는 보호를 해서 외부의 접근을 통해 무분별한 데이터 조작을 막아주어야 한다. 이를 위해 해주어야 하는 것이 정보 은닉이다.(private) 💡 1. 정보 은닉(private) 사람을 예로 들어보자. 한사람이 다른사람에게 사과의 영양분을 전달해 주고 싶다고 한다. 하지만 사과의 영양분을 얻을 수 있게 소화시키는 위는 외부로부터 보호(private) 되어 있다. 그 위로 직접 사과를 넣는것은 불가능하다. 만약 위가 보호되어 있지 않으면? public? 외부에서 위에 직접 음식을 넣는건 매우 위험할 것이다. 사람은 보호(pr.. 2023. 2. 2.
[Java]class, object, instance 상호 관계. 💡 class, object, instance class, object, instance 모두 다 객체를 부르는 용어이다. 객체가 생성되는 과정에서 class 와 object와 instance 가 어떤 관계가 있는지 살펴보자. 🔍 1. class 책이라는 객체가 있다고 하면 이러한 책을 프로그램을 설계해야 다룰 수 있다. 이러한 객체를 생성하려면 설계를 해야하고 그 설계도가 class 이다. 객체의 이름을 정하고 객체의 상태 정보를 정한다 객체는 수많은 정보들이 있지만 이들 중 필요한 정보만은 정해서 modeling 해준다. 🔍 2. object 객체의 형태와 객체(변수)를 선언해준다. b1,b2,b3는 변수이고 객체를 담는 변수이기 때문에 객체(변수)이다. b1,b2,b3는 아직 뭘 가르키지 않는다. .. 2023. 2. 2.