분류 전체보기113 [Java] 상속 java에서 제공해주는 api 들이 보통 상속관계로 이루어져 있어서 상속을 확실히 이해를 해야 이러한 api를 잘 쓸 수 있다. 💡 수평적 설계 vs 수직적 설계 🔍 1. 상속 ➡ 클래스의 설계 (행위적인 측면) 기존에 사용했던 class 를 만들고 객체를 만드는 과정은 누군가에게 상속관계가 없는 수평적인 관계에 대해서 만들어 왔다. 기존의 수평적 코드의 특징을 살펴보면 ➡ 코드의 중복이 발생 공통된 부분을 갖은 여러개의 클래스들이 중복되어 선언해야한다. ➡ 새로운 요구사항에 대한 코드의 수정 불가피 중복되는 부분의 특징이 변경되면 모든 클래스 마다 수정해야하는 번거로움이 있다. ➡ 관리하기가 어렵다. dog 와 cat 클래스가 공통으로 가지고 있던 이름, 나이 , eat() 등의 특징을 Animal 이.. 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] 뒤집은 소수 N개의 자연수가 입력되면 각 자연수를 뒤집은 후 소수면 소수를 출력해라 자연수의 개수는 (1 2023. 2. 3. [Java] 메서드 오버로딩(Method Overloading) 💡 메서드의 오버로딩(Method Overloading) 오버로딩은 메서드의 이름이 동일하지만 매개변수의 종류와 개수가 다른 경우 다른 메서드로 인식하게 해주는 기술이다. 이러한 메소드 오버로딩을 사용함으로써 메소드에 사용되는 이름을 절약할 수 있습니다. 그리고 메소드를 호출할 때 전달해야 할 매개변수의 타입이나 개수에 대해 크게 신경을 쓰지 않고 호출할 수 있다. 메소드 오버로딩은 객체 지향 프로그래밍의 특징 중 하나인 다형성을 구현하는 방법 중 하나이다. 메서드의 오버로딩은 정적 바인딩이므로 아무리 선언된 동일한 이름의 오버로딩 메서드가 많아도 속도에 영향을 주지 않는다. 그 이유는 오버로딩된 메서드들은 정적바인딩으로 동작하여 호출할 메서드를 찾는게 아닌 컴파일 시점에서 이미 호출되는 메서드가 결정되.. 2023. 2. 2. [Java] 잘 설계된 클래스(객체) 어떠한 객체를 만든다는 것은 그 객체의 공간에 접근해 데이터를 저장하거나 빼오기 위함인데 어떠한 제약이 없으면 기억공간에 잘못된 데이터를 넣어도 아무런 문제가 되지 않는다. 객체의 상태정보는 보호를 해서 외부의 접근을 통해 무분별한 데이터 조작을 막아주어야 한다. 이를 위해 해주어야 하는 것이 정보 은닉이다.(private) 💡 1. 정보 은닉(private) 사람을 예로 들어보자. 한사람이 다른사람에게 사과의 영양분을 전달해 주고 싶다고 한다. 하지만 사과의 영양분을 얻을 수 있게 소화시키는 위는 외부로부터 보호(private) 되어 있다. 그 위로 직접 사과를 넣는것은 불가능하다. 만약 위가 보호되어 있지 않으면? public? 외부에서 위에 직접 음식을 넣는건 매우 위험할 것이다. 사람은 보호(pr.. 2023. 2. 2. [Java] VO 와 DTO 구분하기 💡 1. VO와 DTO 알아보기 Java 를 공부하면서 계속 VO와 DTO에 대한 부분이 나오고 언제 한번은 꼭 머릿속에 정리하고 싶어서 이렇게 따로 정리하게 되었다. VO와 DTO는 Data를 담고 전달하는 객체로 동일한 개념이라고도 볼 수 있다. 하지만 몇가지 차이점이 있는데 그 부분을 정리해보자. 🔍 1-1. DTO(Data Transfer Object) DTO는 순수하게 데이터를 담아서 계층 간으로 이동하는 객체이다. 이때 객체는 getter와 setter 외에는 다른 로직이 관여 할 수 없다. public class PersonDTO { private String name; private int age; public String getName() { return name; } public voi.. 2023. 2. 2. 이전 1 2 3 4 5 6 7 ··· 19 다음