목록인프런 (8)
CheerUp_Cheers
상속 OOP의 핵심이라 여기는 특성 상속이 없으면 OO언어라고 안보는게 보통. 부모로 부터 어떤 특징을 물려 받는것. OOP의 매우 중요한 특성인 다형성의 기반 -> 상속없으면 어렵다 #OOP에서의 상속이란? 이미 존재하는 캘르스를 기반으로 새클래스를 만드는 방법 새클래스는 기존 클랙스 동작과 상태를 그대로 물려 받음(유전) 새클래스 만의 동작과 상태를 추가 가능(진화) #초기화 순서? 부모 초기화 -> 자식 초기화 1) 메모리 개체 생성 2) 부모 생성자 호출 3) 자식 생성자 호출 #super super은 현개체의 부모 부분을 가르킴 1) 생성자 : super(매개변수) 2) 메소드 : super.
싱글턴 패턴 어떤 클래스에서 만들 수 있는 인스턴스를 하나로 제한 다음과 같은 조건 충족하는 개체에 적합 1) 프로그램 실행중 하나만 있어야함 ex) 프로그램설정, 파일시스템 2) 이 개체에 전역적으로 접근이 가능해야함 #싱글턴 클래스 다이어그램 - private 생성자 - static 메소드를 통해서만 개체 얻음 - 아직 개체가 없는 경우 개체를 생성 후 static 변수에 저장 static 변수에 저장된 개체를 반환 - 이미 개체가 있는 경우 static 변수에 있는것 반환 #싱글턴 예 #어디쓸까 Configuration(구성) - 프로그램 창의 위치와 크기, 파일에 저장하거나 로딩. #싱글턴 vs Static 다 static으로하면 개체도 안만들어도 되고 괜찬지않나? - static으로 못하는 일 ..
디자인 패턴 반복을 통해 정형화된 문제 해결 방법 비슷한 문제들에 반복적 적용 가능 ex) 110v 콘셉트와 220v 콘셉트, 플라스틱만 들어가게하는 쓰레기통과 병만 들어가는 쓰레기통 -> 사람들은 실수로 잘못 사용하는 경우를 예시처럼 제한. #추상적으로 범용적으로 만든것이 디자인 패턴 - 알고리즘 -(추상)-> 베스트 프랙티스 -(추상)-> 디자인패턴 - 완성된 설계가 아니라 곧바로 코드로 바뀌지 않음. #패턴의 장점(학계) 1) 이미 검증된 개발방법이라 개발 속도 향상 2) 공통 용어 정립으로 개발자간의 빠른 의사소통을 촉진 -> 그건 싱글턴으로 해결해 #패턴의 단점(실무) 1) 곧바로 적용할수 없는 참고가이드를 '패턴'이라 할수 없다. 2) 잘못 사용하는 경우 빈번. 3) 다른 추상화 기법과 크게 ..
#모든것이 개체 속에 있어서 불편함 - 단순한 계산도 개체로 만들어서 해야하나? ex) 절대값 구하기 int Math.abs(int); 공백문자개수 구하기 : StringUtils.countSpaces(String str); - 개체 단위가 아니라 클래스 단위에서 뭔가 하고 싶을때는? ex) 이 클래스에서 총 몇개의 개체가 있을까? => 정적(static)이 이런 불편함을 해결해줌(개체 범위가 아닌 클래스 범위) #단순한 계산 시 #정적 메소드만있는 Math클래스는 개체를 못만들게 하면 안되요? 맞는 말임 -> 이런 경우 개체 생성을 못하게 막으면 됨. - 방법 1) 생성자를 private로 막을까? private Math() { } // private로 막고! Math math = new Math();..
#클래스 다이어그램 어떤 시스템에 있는 클래스들을 보여주는 다이어그램 -> 클래스 안의 상태,동작,접근제어자 -> 클래스 간의 관계 시스템의 정적인 구조를 보여주기 적합. UML(여러가지 다이어그램)의 일부 #UML 시스템의 디자인을 시각화하기 위해 만든 표준 - 구조을 보여주는 UML 7개(클래스..) - 동작을 보여주는 UML 7개(시퀀스..) -> 요즘은 이런 문서화 줄어듬 -> 자사의 기술을 개발이 많아져서. #모델링할 문제 - 화분에 예쁜 꽃 - 일정량의 물이 있으면 평생 삼 - 물을 뿌릴때 사용하는 도구는 분무기 - 하루라도 물 못받으면 사망 - 사망 후에는 뿌려도 안살아남. 1단계 분무기 1) 클래스명 : WaterSpray 2) 상태 : 현재 남아 있는 물의양 - 초기 값 : 0 - int..
생성자 프로그래밍의 실수를 줄여줌 -> 실수를 줄여주게 강제하기 때문. -> 개체 생성한방에 생성해놔라(구조체는 하나씩 대입) - 특징 개체 생성시 자동으로 호출되는 특수 함수 반환값 : 반환 값이 없어요.(void가 아니에요~) 함수명 : 클래스명과 같아요. 매개 변수를 받지않는 생성자는 꼭 필요해~ - default 생성자 프로그래머가 생성자를 제공하고 나면, 기본 생성자는 생기지 않음. 하나라도 생성자를 만들면, 기본생성자는 만들어주자. #왜 개체 생성후 값을 대입하면 안좋을까? 1) 개념상의 문제 공장에서 찍어나온 물건이 속이 비어있네?? 2) 후조건의 문제 생성자도 함수이기 때문에 생성자의 후조건 : '개체의 상태는 개체 생성과 동시에 유효하다' 3) 사용자를 고려 안한 문제 - 사용자란? 내가..