본문 바로가기

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