분류 전체보기

자바/자바의 정석 Ch.7 객체지향 프로그래밍 II

ch7-7~9 오버라이딩(overriding)

ch7-7. 메서드 오버라이딩(Overriding) 상속받은 조상의 메서드를 자신에 맞게 변경하는 것 (정확히는 override는 '덮어쓰다'란 뜻으로, 메서드를 덮어쓰는 것이다. ) Point클래스는 2차원 좌표로 getLocation 메서드는 x, y좌표만 출력한다. Point를 상속받은 Point3D는 3차원 좌표로 그냥 쓰기에는 맞지 않다. 따라서 조상의 메서드를 override해서 String getLocation( )안을 z를 포함시켜 고친다. 선언부는 바꿀 수 없고 내용(구현부{ })만 변경 가능함. getLocation을 상속받기는 했지만 z출력이 되지 않는다. 따라서 override로 상속을 받아서 고쳐줘야 한다. 조상의 getLocation( )을 override해서 바꾼다. 출력 잘된..

자바/자바의 정석 Ch.7 객체지향 프로그래밍 II

ch7-5,6 단일상속

ch7-5 단일 상속(Single Inheritance) 1. Java는 단일상속만을 허용한다.(C++은 다중상속 허용) Tv, DVD가 2개의 부모를 받는 것이 불가능하다. TvDVD가 Tv, DVD를 다중 상속받는다고 가정하면, Tv, DVD class에 이름이 같은 power 메서드가 있는데 내용이 다를 경우 충돌이 발생한다. Java가 나온 이후로 OOP언어는 단일 상속을 원칙으로 한다. 인터페이스를 사용하면 다중상속은 허용하면서 충돌이 일어나지 않게 Java가 해결책을 제시했다. 2. 비중이 높은 클래스 하나만 상속관계로 나머지는 포함관계를 한다. 인터페이스를 사용하지 않고 다중 상속처럼 사용하려면 하나만 상속관계로 하고 나머지는 포함관계로 만든다. Tv는 상속으로 처리하고 DVD는 포함으로 T..

자바/자바의 정석 Ch.7 객체지향 프로그래밍 II

ch7-3,4 클래스 간의 관계, 상속과 포함

ch7-3 포함(composite) 관계 1. 클래스의 멤버로 참조변수를 선언하는 것 클래스의 관계에는 1.상속 2.포함, 2가지가 있다. 포함은 클래스의 멤버로 참조 변수를 선언하는 것이다. Circle class는 Point class를 상속받지 않고 포함한다. 왼쪽, 오른쪽 모두 저장공간은 3개이다. 하지만 왼쪽 x에 접근하려면 c.x이고, 오른쪽 x에 접근하려면 c.c.x를 써야 한다. ①의 x, y, r -> c.x, c.y, c.r ②의 r은 c.r이고 x, y -> c.c.x, c.c.y 2. 작은 단위의 클래스를 만들고, 이들을 조합해서 클래스를 만든다. class Car는 Engine, Door를 포함했다. 자동차를 만들 때, 멤버들을 다쓰기보다는 Engine과 Door class를 만들..

자바/자바의 정석 Ch.7 객체지향 프로그래밍 II

ch7-1,2 상속

ch7-1 상속(Inheritance) Parent라는 class가 있다. Child class를 만들 때 Parent를 부모로 한다. Parent와 Child는 상속관계에 있다. 자손은 조상의 모든 멤버를 상속받기 때문에 부모의 멤버만 받는 것이 아니라 부모의 부모 것도 받는다. 단 생성자, 초기화 블록은 제외한다. 코드를 보면 Parent 멤버 1개, 자식의 멤버는 없고 상속 받은 멤버 1개가 있다. class Child extends Parent { }에 맴버가 하나도 없는 거 같지만 부모를 모두 물려받아 int age가 들어있다. 자신의 멤버는 없고 상속받는 멤버가 있다. Parent 멤버 1개, Child 멤버 1개 이므로 두 class 멤버 개수가 같아 조건을 만족한다. 자손 클래스의 새로운 ..

스프링의 정석/Ch. 02 Spring MVC

ch2_10. 관심사의 분리와 MVC패턴 - 실습(1)

YoilTeller 복사해서 YoilTellerMVC 만든다. 입력을 분리하면 HttpServletRequest request 매개변수를 String으로 year, month, day 각 각 받게 된다. 따라서 request 메서드인 request.getParmeter를 사용하지 않아도 된다. Spring은 문자를 숫자로 자동 형변환 하므로 매개 변수를 int형으로 바꿔주고, 작업의 parseInt 메서드를 쓰지 않아도 된다. 코드의 수가 줄어든다. 이 상태로 실행시키면 500 Error가 발생한다. 당황하지 말고 Error 메시지를 읽어보자. "Ambiguous mapping found."은 @Controller에서 @RequestMapping이 잘못되었을 때 발생하는 오류이다. YoilTeller의 ..

스프링의 정석/Ch. 02 Spring MVC

ch2_09. 관심사의 분리와 MVC패턴 - 이론

1. 관심사의 분리 Separation of Concerns YoilTeller 프로그램을 보면 으로 나눌 수 있다. "입력", "처리", "출력"을 Concern(관심사)라 한다. 관심사는 처리할 작업단위라 생각하자. YoilTeller의 main 메서드는 3개의 Concern이 있다. OOP의 5가지 설계원칙이 있고, 5가지의 앞 글자만 따서 SOLID라 한다. 한 가지가 단일책임의 원칙(SRP, Single Responsibility Principle)이다. 하나의 메서드는 하나의 책임만 가져야 한다는 뜻이다. 여기서 책임은 Concern이고 YoilTeller의 main 메서드는 3개의 Concern이 있어 분리하는 것이 맞다. 객체지향적으로 코딩을 잘하려면 코드 분리를 잘해야 한다. 분리의 종류..

스프링의 정석/Ch. 02 Spring MVC

ch2_08. 텍스트와 바이너리, MIME, Base64

텍스트와 바이너리, MIME, Base64 MIME(Multipurpose Internet Mail Expressions) Base64 7. 텍스트와 바이너리, MIME, Base64 data는 크게 문자, 숫자로 되어 있다. 위 그림은 image.jpg를 메모장으로 읽은 것이다. 메모장은 text editor이므로 image.jpg를 text로 인식해서 보여준다. 파일이 text 파일인지 binary 파일인지 구분하는 방법은 메모장으로 열었을 때 읽을 수 있으면 text 파일이고 못 읽으면 binary 파일이다. 위 그림에서 문자 외에 깨진 것은 숫자라 보면 된다. binary 파일은 문자는 문자, 숫자는 숫자로 쓰고 읽는다. text 파일은 문자는 문자, 숫자는 문자로 변환해서 쓴다. 읽을 때는 전부..

스프링의 정석/Ch. 02 Spring MVC

ch2_07. HTTP 요청과 응답 - 이론(1)

프로토콜(protocol)이란? HTTP(Hyper Text Transfer Protocol)란? HTTP 메시지 HTTP 메세지 - 응답 메시지 HTTP 메세지 - 요청 메시지 HTTP 메세지 - GET, POST 1. 프로토콜(protocol)이란? protocol은 서로 간의 통신을 위한 약속, 규칙이다. 컴퓨터에서만 쓰이는 용어는 아니다. 컴퓨터에서 말하는 protocol은 '주고받을 데이터에 대한 형식을 정의한 문서'이다. 데이터를 어떻게 주고받을지 약속하지 않으면 데이터가 어디서부터 어디까지인지 혹은 어떤 내용인지 해석할 수 없다. 따라서 데이터를 주고받을 때 필요한 서로 간의 약속이 쓰인 문서가 있어야 한다. protocol은 '주고받을 데이터에 대한 형식을 정의한 문서'이다. 이는 busi..

스프링의 정석/Ch. 02 Spring MVC

ch2_06. 설정 파일 - server.xml, web.xml

6. Tomcat의 설정 파일 - sever.xml, web.xml web.xml은 톰캣에 있는 web.xml과 STS prj에 있는 web.xml 2가지가 있다. 톰캣의 모든 web app의 공통 설정으로 먼저 실행 한 다음에 STS prj의 web.xml 개별 설정으로 넘어간다. 공통 설정 web.xml의 경로는 톰캣 설치 경로/config/web.xml에 있고(1개) 개별 설정 web.xml은 프로젝트, context마다 있다. ❓ XML(Extensible Markup Language)은 데이터를 정의하는 규칙을 제공하는 마크업 언어 Package Explorer의 Server 항목을 보면 Tomcat v9.0 하위 항목에 공통 설정 web.xml이 있다. 뒤에 나오겠지만 이 web.xml이 먼저..

스프링의 정석/Ch. 02 Spring MVC

ch2_05. 클라이언트와 서버(3)

Architecture Overview(클라이언트와 서버(1)에서 배웠던 용어 정리) 클라이언트와 서버 - 실습 클라이언트와 서버 - 정리 1. Architecture Overview(클라이언트와 서버(1)에서 배웠던 용어 정리) https://tomcat.apache.org/tomcat-9.0-doc/architecture/overview.html Apache Tomcat 9 Architecture (9.0.73) - Architecture Overview This page provides an overview of the Tomcat server architecture. Tomcat is designed to be a fast and efficient implementation of the Servl..

돌맹이떼굴떼굴
'분류 전체보기' 카테고리의 글 목록 (10 Page)