본문 바로가기

객체지향8

[Java] 개념은 제대로 알고가자 - 객체지향 무엇인가 [객체지향이란 무엇인가]- 궁금해졌다. 클래스에 대해서 공부를 막 시작하는 와중에 객체지향에 대해서 난 설명할 수 있을까에 대해서 생각했다. 결론은 할 수 없었다. 객체지향에 대해서 정확히 알지도 못하면서 객체지향언어로 프로그래밍을 한다? 누군가 개발해놓은 것 따라하는 것은 가능하나 스스로 못할 것이다. 중요한 패러다임 자체도 이해하지못하면서 그 언어로 개발한다는 것은 장점을 활용하지않겠다는 것 혹은 흉내만 내고 사고 확장은 못한다는 것 그래서 객체지향에 대해서 알아보기로 했다. 이후에 syntax 공부를 해도 늦지않다고 생각했다. 한번 할 때 제대로 하자 한번에 모두 다 파악하기에는 힘들 것이지만 앞으로의 공부에 많은 도움이 될 것이라 생각했다. 아래의 이야기는 객체지향의 사실과 오해 라는 책 + 구글.. 2017. 9. 16.
[자바스크립트] 객체지향 프로그래밍하기 [프로토타입 기반 객체지향]- 자바스크립트는 클래스가 존재하지않음- 객체지향 프로그래밍을 할 수 있음 : 객체, 인스턴스 변수/메서드, 정보은닉(클로저), 상속(prototype, __proto__)- 자바스크립트 객체지향 핵심 : 프로토타입 객체(체인)- 해당 포스팅을 통해 단계별로 상속, 정보은닉 하는 방법을 알아볼 것 : 자바스크립트는 어떻게 구현하나 [자바스크립트로 객체지향 프로그래밍하기]1) 기본적인 인스턴스 생성 구조12345function Person(name){ this.name = name;} var jinbro = new Person("jinbro");cs- Person 함수 : 클래스 역할이자 생성자(객체 생성 시 처음 호출 : 인스턴스 변수 값 및 메서드 설정을 위해) 역할- new.. 2017. 5. 26.
[자바스크립트] 객체 그리고 프로토타입 [먼저 보면 좋은 게시글]- [자바스크립트] 객체란 무엇인가 그리고 함수는 객체다 : http://jinbroing.tistory.com/113 [객체란]- 객체란 변수프로퍼티와 메서드들이 모여 이룬 하나의 꾸러미- 추상적 객체와 구체적 객체(인스턴스 객체) 구분지어 사용: 한 종류지만 각자의 개성에 맞는 값, 구체적 행동 방식을 가짐(다양성)- 객체간의 관계를 만들어 프로그래밍하는 방식을 객체지향 프로그래밍이라 함- 객체는 레퍼런스 타입 : 변수에 값을 직접 대입하는 것이 아니라 객체 메모리 주소를 대입함 [자바스크립트의 객체지향]- 객체지향 프로그래밍 : 객체 사이에 관계를 형성하여(추상화된 객체 - 구체화된 객체) 프로그래밍 하는 방식- 자바스크립트는 객체지향이긴한데, class가 없다- 자바스크립.. 2017. 5. 17.
[프로그래밍기초] 절차지향 객체지향 프로그래밍 [프로그래밍이란 무엇인가]- 컴퓨터의 하드웨어를 제어하거나 하드웨어를 활용해 연산하기위해 명령을 내리는 것- C, C++, Java, Ruby, Python 등 프로그래밍에 사용되는 언어를 프로그래밍 언어라 함 [절차지향 프로그래밍이란 무엇인가]- 절차에 맞춰 순서대로 나열하는 프로그래밍 기법을 말함 - 예를 들면 아래와 같음 : 음료수 자판기 프로그래밍(음료수 자판기만)1) 동전을 넣는다2) 음료 버튼 응답을 받고, 넣은 동전과 가격을 비교해봄(초과, 동일, 미만)3) 동일할 경우 음료수 배출(동일한 경우만 나타냄) - 단일 종류만 필요한 경우, 복잡한 절차가 필요한 경우가 아니면 절차지향 프로그래밍 언어를 통해 프로그래밍- 절차가 길어지고 복잡해지면 코드를 한 눈에 알아보기가 힘듬- 일부분을 고치려고.. 2017. 5. 6.
[자바스크립트] 함수는 무엇이다 [함수란]1) 일반적 기능- 특정 작업에 필요한 일련의 구문들을 그룹화하기위한 개념- 동일 작업을 필요할 때마다 불러오기위해 필요한 개념 : 코드 재사용 2) 자바스크립트 기능- 객체생성 : 생성자함수(http://jinbroing.tistory.com/54 : 생성자함수 검색)=> 정보은닉(데이터), 함수 생성, 모듈화- 함수도 객체(first-class object, 일급객체)이기때문에 변수나 객체, 배열에 저장될 수 있고, 다른 함수의 파라미터, 반환값으로 사용될 수 있음 [함수정의]1) 함수선언식 : function 키워드로 선언함- 함수명 : 함수명 생략 불가, 함수명으로 재귀적 호출(자신 호출), 디버거가 해당함수를 구분할 수 있는 식별자 역할- 파라미터(매개변수) : 함수가 호출될 시 필요한.. 2017. 3. 15.
[자바스크립트] 객체 #2 [객체지향]- 공통의 속성, 동작을 지니고 있지만 각기 존재마다 본인만의 특징이 있음, 이를 구현하기위한 방법- 인간의 표현방법과 똑같이 만듬 : 주어(S)가 (무엇을) 한다(V) - 객체.메소드 : 객체가 동작한다(메소드) - 이를 지향하는 프로그래밍 언어를 지칭하여 객체지향 프로그래밍 언어라 함- 객체지향에는 두가지 방법이 있음 : 객체를 지향하는 것은 맞지만 각기 다른 방법에 의해 객체를 구현함 [두 객체지향의 차이]1) 클래스 기반 객체지향 : 주로 c-family 언어(c++, java 등)- 객체 설계도인 클래스를 만듬 : 공통 속성, 동작(메소드), 공통 속성에 대한 값을 초기화하기위한 생성자 메서드를 가지고 있음- 클래스(설계도)에 맞춰 객체(new)를 생성함- 생성자 메서드에서 각 공통의.. 2017. 3. 14.
[Java] 레퍼런스타입 - 다형성/캐스트연산자/instanceof 지난 포스팅에서는 레퍼런스타입 특징에 대해서 알아보았다. 이번 포스팅에서는 레퍼런스타입 중 클래스와 인터페이스가 가지는 다형성에 대해서 알아볼 것이다. 우선 다형성이 대다수 사람들이 하는 정의들을 알아보았다 다형성 : 여러가지 형태를 가질 수 있는 능력 으로 다들 정의를 해놓았더라 찾아본 정의를 토대로 코드들을 살펴본 결과 내가 내린 정의는 이러하다(좀 길다.....) 다형성 : 상속받은 클래스(자식) 혹은 인터페이스 구현된 클래스가 있고, 상속을 해준(부모) 클래스 혹은 인터페이스가 있다. 부모 클래스 혹은 인터페이스를 객체 변수타입으로 두고 자식클래스, 인터페이스 구현된 클래스의 객체를 담을 수 있다. 다형성을 사용한다면 부모 클래스, 인터페이스를 인자로 두고 실제로는 자식, 인터페이스를 구현한 클래.. 2017. 1. 16.
[Java] 레퍼런스타입 자바의 변수형은 프리미티브 타입과 레퍼런스 타입으로 나뉜다. - 프리미티브타입 : short, int, long, char, boolean, float, double / 값을 변수에 대입하여 사용하는 형태- 레퍼런스타입 : 클래스, 인터페이스, 배열, 열거형 / 값을 변수에 대입하지만 변수는 참조값(메모리상)을 가지고있지 값(프리미티브타입 값들로 이루어진)을 직접 들고있지는 않는 것이 특징이다. 레퍼런스타입의 특징을 예시로 살펴보면 다음과 같다. 1) 왼쪽의 코드 결과는 오른쪽과 같다.2) str1의 값이 참조값에 저장된다. 3) str2의 변수에 str1의 참조값을 대입한다.4) sysout을 통해 결과값을 보면 true로 나온다. 프리미티브타입에 비춰서 생각해보면 str1의 문자열을 str2에 대입했.. 2017. 1. 16.