인터페이스 3

(1) 스프링 사용하지 않고 OCP, DIP 지키기

아래의 코드는 Alphabet 이라는 인터페이스와 그를 상속받는 A, B의 클래스다. 여기서 className 이라는 메서드는 각각 자신의 클래스 이름 A, B를 출력하게 된다. # 인터페이스 public interface Alphabet { void className(); } # 구현체 A public class A implements Alphabet{ @Override public void className() { System.out.println("A"); } } # 구현체 B public class B implements Alphabet{ @Override public void className() { System.out.println("B"); } } 이때 인터페이스 Alphabet을 참조하면서..

공부/springboot 2023.05.10

좋은 객체지향이란?

객체지향이란? 현실 세계에서 객체란 물질적으로 존재하는 어떤 사물이나 관념을 의미하나, 코드에서 객체는 메모리에 할당된 클래스(인스턴스) 를 의미한다. 따라서 객체지향적이라는 의미는, 클래스가 하나의 객체, 즉, 개념을 구성한다고 생각하면 편하다. 예를 들어보자. 자동차라는 객체는 어떤 차종 하나를 가르키지 않는다. 네 바퀴가 달리고 사람이나 물건을 실을수 있으며 엔진으로 구동되는 이동수단이라는 개념 그 자체를 의미한다. 자동차의 개념 1. 네바퀴 -- 속성 2. 물건이나 사람을 운송 -- 기능 3. 엔진으로 구동 -- 속성 이를 코드로 치환하면 다음과 같이 된다. public class Car{ private int wheel = 4; // 바퀴의 갯수 private String powerSource ..

공부/springboot 2023.05.10

코틀린의 클래스

//ex21 fun main() { //2중 반복문 // ***** // ***** // ***** // ***** // ***** for( i in 0 until 5) { for( j in 0..4 ){ print("*") } println() } //연습문제 // readLine()함수로 n을 입력해서 3이 나오면, // * // *** // ***** // n을 입력해서 4가 나오면 // * // *** // ***** // ******* print("n을 입력하세요: ") // readLine() 함수로 입력받은 값을 정수형으로 변환합니다. val n = readLine()?.toInt() ?: 0 for (i in 1..n) { // 공백 출력 for (j in 1..n-i) { print(" ..

공부/kotlin 2023.03.21