728x90

사자처럼 6

[대학교멋사🦁/OOD] 5. 의존과 DI(의존 주입)

1. 의존하다 기능 구현을 위해 다른 구성 요소를 사용하는 것. ex) 객체 생성, 메소드 호출, 데이터 사용 등 의존은 변경이 전파될 가능성이 있음을 의미 내가 의존하는 대상이 변경되면 나도 바뀔 가능성이 존재 == 의존하는 대상이 변경되면 의존받는 대상도 바뀔 가능성이 존재 ex) 호출하는 메소드의 파라미터 변경 ex) 호출하는 메소드가 발생할 수 있는 exception 타입 추가 (예외 처리) 2. 순환 의존 A->B->C->A의 형태로 의존하는 관계. # 문제점 변경 연쇄 전파 가능성 존재. => 왠만하면 클래스, 패키지, 모듈 등의 모든 수준에서 순환의존이 없도록 구현하도록 하자. Q. 의존하는 대상이 많다면? A,B,C,D,E,F를 의존하는 X가 존재한다고 할때 X는 의존하는 애들이 바뀔 때 ..

[대학교멋사🦁/OOD] 2. 다형성 추상화

1. 다형성(Polymorphism)이란? 여러(poly) 모습(morph)을 갖는 것 객체 지향에서는 한 객체가 여러 타입을 갖는 것 한 객체가 여러 타입의 기능을 제공 타입 상속으로 다형성 구현 하위 타입은 상위 타입도 가능 : 여러 타입을 가질 수 있음 2. 추상화(Abstraction) 데이터나 프로세스 등을 의미가 비슷한 개념이나 의미있는 표현으로 정의하는 과정 # 추상화 방식 특정한 성질 추출 : 사용자의 Id, 이름, 이메일 추출 공통성질 추출(일반화) : 다른 모델명을 가진 같은 프린터기 == 프린터 # 타입 추상화 여러 구현 클래스를 대표하는 상위 타입 도출 흔히 인터페이스 타입으로 추상화 추상화 타입과 구현 클래스는 타입 상속으로 연결 추상화한 타입은 interface로 대개 표현. 공..

[대학교멋사🦁/OOD] 1. 객체 | 캡슐화

1. 서론 2. 절차지햔 VS 객체지햔 3. 객체 4. 캡슐화 1. 서론 # 소프트웨어를 유지보수하는 이유 변화하는 세계에서 여전히 유용한 소프트웨어가 되도록 하기 위함이다. ==> 바뀌어가는 환경에 알맞게 소프트웨어 또한 변경되어야 한다. ??? 낮은 비용으로 소프트웨어를 변화시키기 위한 방법에는 어떤 것이 있을까? 객체지향 프로그래밍 = 캡슐화 + 다형성(추상화) 2. 절차 지향 vs 객체 지향 # 절차지향 절차 지향의 장점 코드 구현 시 작성하기 쉽고 시간이 적게 소요됨 절차 지향의 단점 대개 위에서 선언한 data 값을 아래에서 공유하는 방식을 사용 코드의 중복 사용 및 데이터 공유의 현상이 발생 코드 수정의 어려움을 야기 => 비용적으로 좋지 않음. # 객체지향 객체지향의 특징 데이터와 프로시저..

[대학교멋사🦁/JAVA] Assignment_2회차_2

멋쟁이사자처럼 로그인 프로그램입니다. 1. 로그인 2. 회원가입 3. 종료 의 기능을 하는 프로그램을 제작합니다. 조건 : map을 활용하여 과제를 완성합니다 package week2.assignment_2; import java.util.*; public class likelion_201902679_KHJ_02 { private Map userInfoList = new HashMap(); static Scanner sc = new Scanner(System.in); public void createNewUser(String id, String pw){ // 새로운 사용자 생성 userInfoList.put(id,pw); } public boolean login(){ // login 기능 String i..

[대학교멋사🦁/JAVA] Assignment_2회차_1

Collection 을 사용하여 여러가지 간단한 문제를 구현해 보도록 합니다 뚜둔. 1. 다섯 명을 입력받고 이 씨 성인 사람을 출력하는 프로그램입니다 조건 : list을 활용하여 과제를 완성합니다. package week2.assignment_1; import java.util.*; public class assignment_1_1 { // 이씨 성을 가진 사람을 찾는 메소드 public static void findLees(List list){ for(String name : list){ if(name.contains("이")){ System.out.println(name); } } } public static void printProgramStart(){ System.out.println("이 씨 ..

[대학교멋사🦁/Backend] Assignment_week1

자판기를 맹글어 보쟈. package week1; import java.util.*; public class homework_1 { private class Pair{ String menu; int price; Pair(String menu, int price){ this.menu = menu; this.price =price; } } static Scanner sc = new Scanner(System.in); private int change = 10000; private HashMap menuList = new HashMap(){{ put(1, new Pair("파워에이드",1400)); put(2, new Pair("초코라떼",900)); put(3, new Pair("쫄병",1300)); put..

728x90