Programming (477) 썸네일형 리스트형 상속(3) - 메서드 재정의(override) 1 자식 클래스는 앞서 설명했다시피 부모 클래스의 필드와 메서드를 그대로 상속받아 사용할 수 있습니다. 하지만, 항상 부모 클래스에 정의된 메서드가 자식 클래스의 역할과 상황에 맞게 선언되어 있으리라는 보장은 없습니다. 이런 경우에는 상속받은 메서드를 자식 클래스에서 다시 수정 선언하여 재정의 할 필요성이 생깁니다. 이를 위한 기능을 메서드 오버라이딩(Overriding)이라고 합니다. 즉, 오버라이드(override)란 자식 클래스에서 상속받은 동일한 메서드를 재정의 하는 것을 의미하게 됩니다. 만일, 상속받은 메서드에 오버라이드가 이루어졌다면, 자식 객체에서 메서드를 호출할 때 새롭게 재정의된 메서드가 호출되고 부모 클래스에서 선언된 메서드는 호출되지 않습니다. 예를 들어 부모 클래스에도 method1(.. 1. HTML문서의 구조(2) - 시맨틱 태그 시맨틱(semantic) 태그는, 앞서 살펴본 필수 태그들과 마찬가지로 html 문서 구성에서 쉽게 찾아볼 수 있는 태그들입니다. 다만, 이를 시맨틱 태그로 따로 분류해 살펴보는 이유는 무엇일까요? 쉽게 말해 말 그대로, 이름만 보아도 그 의미를 유추할 수 있는 태그입니다. 하지만 단어의 의미론적인 정의를 차치하고서라도 굳이 시맨틱 태그를 써야 하는 이유는 아직 의문입니다. 사실, 그 이유는 간단하면서도 꽤나 추상적입니다. 결과적으로는 '구조화된 표준'에 가까운 문서의 구조를 정립해, 효율적인 개발과 사용을 꾀하기 위해서라고 볼 수 있죠. 예를 들어, 시맨틱 태그로 구분된 영역으로 작성된 html 문서를 보면 개발자 혹은 분석하는 주체는 해당 웹사이트의 구조를 손쉽게 파악할 수 있게 됩니다. 그럼 웹사이.. 1. HTML문서의 구조(1) - 기본 태그 일단 HTML의 가장 기본적인 문서 형태를 보고, 최상위에 해당하는 주요 태그들에 대해 먼저 살펴보도록 하겠습니다. 간단하게 리뷰를 하는 형태이니 편한 마음으로 살펴보겠습니다. HTML 기본 테스트 문서입니다. 1번 항목 2번 항목 3번 항목 HTML 삽입 미리보기할 수 없는 소스 ○ 태그 해당 태그는 가장 기본 적인 문서의 유형(document type)을 선언하는 태그입니다. 해당 문서가 HTML5로 작성되었음을 선언하는 기본 태그입니다. ○ 태그 html 문서의 가장 기본적인 태그이며, html 파일의 시작과 끝을 정의합니다. 태그 사이에 모든 문서의 내용이 작성되는 것을 원칙으로 하며, 태그 뒤에는 아무 내용도 작성하지 않습니다. 단, 예제에 보면 형태로 html 태그가 시작되는 것을 볼 수 있습.. 상속(2) - 부모 생성자의 호출(super) 자식 객체는 반드시 부모 객체가 있어야 생겨날 수 있는 존재입니다. 이 점은 이해가 가시죠? 너무나도 당연한 이야기이지만, 다시 이러한 내용을 상기하는 이유는 "부모 객체를 상속하는 자식 객체의 생성"과정에 대한 설명을 진행하기 위해서입니다. 앞서 상속의 개념과 함께 예제를 만들었던 것을 기억하실 겁니다. 상속(1) - 상속의 기본 개념 상속(Inheritance)은 객체 지향 프로그램 언어에서 부모(상위) 클래스를 상속한 자식(하위, 파생) 클래스를 생성하여 부모 클래스의 필드나 메서드를 그대로 사용하는 성질을 의미합니다. 기존에 개 nozeroslope.tistory.com 이 예제에는 다음과 같이 부모 객체(Galaxy)를 상속하는 자식 객체(GalaxySultra)가 new 키워드를 통해 생성되는.. 상속(1) - 상속의 기본 개념 상속(Inheritance)은 객체 지향 프로그램 언어에서 부모(상위) 클래스를 상속한 자식(하위, 파생) 클래스를 생성하여 부모 클래스의 필드나 메서드를 그대로 사용하는 성질을 의미합니다. 기존에 개발되어 있는 클래스를 재사용함으로써 코드의 중복을 줄여줄 수 있고, 유지보수 리소스를 최소화할 수 있게 되죠. 부모 클래스를 수정하게 되면 자동으로 자식 클래스에서 상속받아 사용하고 있는 메서드 등도 자동으로 수정이 되는 효과를 누리게 되니까요. 물론 접근 제한자에 따라서 모든 요소들이 무조건 상속되지는 않습니다. 기본적으로 private속성을 갖는 필드와 메서드는 해당 클래스에서만 사용하는 것이기 때문에 자식 클래스에 상속이 되지 않습니다. 또한, default속성일 경우에는 자식 클래스라고 하더라도 패키.. 15. Javascript 함수형 프로그래밍 적용(6) - reduce reduce( ) 함수는 앞서 살펴본 map과도 약간 유사한 형태를 띠는 함수입니다. 이 함수는 배열의 각 요소를 하나씩 꺼낸 다음 사용자가 정의한 함수를 적용시킨 후, 그 결과 값을 계속해서 누적하는 기능을 합니다. Array.prototype.reduce = function(callback, memo) { // this(obj)가 배열인지 확인 필요함 // callback이 함수인지 확인 필요함 var obj = this; var value; var accumulated_value = 0; for(var i = 0; i < obj.length; i++) { value = obj[i]; accumulated_value = callback.call(null, accumulated_value, value).. 어노테이션(Annotation) - 런타임 시 어노테이션 정보 사용하기 어노테이션의 경우 원래 아무런 동작을 하지 않는 단순한 표식 혹은 정보 값에 지나지 않을 수 있지만, 앞서 살펴본 리플렉션(Reflextion)을 통해서 정보를 획득하고, 일정한 처리를 진행할 수 있도록 지원하고 있습니다. 일단 클래스 / 필드 / 생성자 / 메서드에 적용된 어노테이션 정보를 획득해야 합니다. 클래스에 적용된 어노테이션 정보 획득을 위해서는 java.lang.Class를 이용하면 되는데 필드 / 생성자 / 메서드에 적용된 어노테이션 정보 획득을 위해서는 Class의 메서드를 통해서 java.lang.reflect 패키지의 Field, Constructor, Method 타입의 배열을 얻어야 합니다. Class (Java Platform SE 8 ) Determines if the spec.. 15. Javascript 함수형 프로그래밍 적용(5) - map map 함수 역시 앞서 살펴본 each와 비슷하지만, 활용 방식이 약간 다른 함수입니다. 배열에 주로 사용되며, 배열의 요소 각각을 꺼내 사용자가 정의한 함수에 적용한 후, 새로운 값을 얻은 다음 그 결과 값을 새로운 배열에 넣는 형태로 동작하게 됩니다. 한 번 예제를 살펴보도록 하겠습니다. Array.prototype.map = function(callback) { var obj = this; var value; var mapped_value; var A = new Array(obj.length); for(var i = 0; i < obj.length; i++) { value = obj[i]; mapped_value = callback.call(null, value); A[i] = mapped_valu.. 이전 1 ··· 47 48 49 50 51 52 53 ··· 60 다음