2012년 9월 11일 화요일

자전거 교통사고 대처요령



요근래 자전거 라이더가 많아졌다.

자전거는 법규상 '차'로 명시되어 있다고한다.

도로 주행으로 자전거를 잘 타고 다니는데 교통사고 대처 요령법을 익혀야겠다.

무섭다. ㅠ



이건 관련 사이트이다.

http://cafe.naver.com/isogood/765


깜빡 하는 용어들.


자주 사용하는 용어 중 가끔 뜻 모르게 말하는 용어들이 있다.

다시 한번 머리 속에 각인 시키기 위해 블로그에 적어 놓기로 한다.

#. 인터페이스(Interface)와 API


인터페이스라는 용어는 복수의 의미를 가진다. 일반적으로 '어떤 클래스의 인터페이스' 라고

하면, 클래스가 가지고 있는 어떤 메소드의 집합을 의미한다.

이 클래스에 대해서 조작 또는 처리를 실행할 때는 클래스가 가지고 있는 메소드를 통해

실행한다.

이게 일반적 API(application programming interface) 의 의미이고,

Java에서는 '키워드 interface를 사용해서 선언된 것'도 인터페이스라고 한다.

이 두가지 인터페이스라는 용어의 의미는 비슷하지만, 문장 안에서 용어를 사용할 때

아리송 아리송 하다.. @_@);;


#. 패턴과 클래스


"패턴"이라는 용어는 디자인 패턴의 의미로 사용한다.


"클래스"는 Java에서 말하는 클래스이고 키워드 class를 사용해서 프로그램에서 정의된 것

을 말한다.


#. 오버라이딩(Overriding)와 오버로딩(Overloading)


오버라이딩(재정의)와 오버로딩(다중정의)에 대해 다시한번 정의해보쟈! ㅋㅋ 매번까먹어.


오버라이딩'메서드 재정의'라고도 불리며 클래스간 상속 관계에서 메서드를 재 정의 하는 기법이다! 두 클래스가 상속 관계에 있으면 부모 클래스의 public , protected 으로 선언된 메서드는 자식 클래스로 그대로 상속되어 자식 클래스에서 사용 할 수 있다. 

즉 이미 정의된 메서드를 재 사용하게 할 수 있는거다. (재활용 재활용 .ㅋㅋ)
그러니깐, 단순히 재 사용을 하지 않고 자식 클래스에서 상속 받은 메서드를 재 정의하여
다른 연산을 수행하도록 하는것이다!!!
Super클래스의 메소드보다 sub클래스의 메서드 접근제한이 동일하거나 더 넓어야한다. 

예를 들어, protected 라면 protected /public이다.
기본적으로 리턴형은 같아야하며 super클래스의 메서드명과 sub클래스의 메서드명이 같아야 한다. 그리고 인자(타입,개수)는 반드시 같아야 한다.


일반적으로 하나의 클래스 안에 정의된 메서드들의 이름은 중복될 수 없다. ('_ ')a 

오버로딩(다중정의)는 하나의 클래스 내에서 같은 이름을 가지는 메서드(멤버함수)가 여러개 정의 될 수 있다. (이름만 같은 쌍둥이들 ㅋㅋㅋ). 
이것은 컴파일 할 때 컴파일러에 의해 각 메서드들이 구별되며 기준은 인자가 된다. 
그러니깐,
메서드의 이름은 같되 매개변수의 정보는 달라야한다!!!. (얘들은 쌍둥이지만, 유전자는 다르다규!)
메서드의 이름과 입력 매개변수의 정보(개수 및 타입)를 메서드의 시그너처라 함.
(메서드 시그너처(Signature): 메서드 이름 + 매개변수 정보(개수 및 타입 정보))
메서드의 시그너처를 유일하게 한다면 메서드의 이름은 얼마든지 같을 수 있다! 
오버로딩의 목적은 일관된 작업이며 그것으로 프로그램의 신뢰가 높아지기 마련이다.

특정클래스로 접근제한은 상관이 없다. 물론 리턴형에도 상관이 없다. 다만, 메서드명과 인자(타입,개수)는 반드시 달라야 한다.


근데, 왜 오버로딩을 사용하는걸까?

동일하거나 유사한 일을 수행하는 메서드가, 전달 받는 매개변수에 따라 조금씩 다른 연산을 해야 하는 경우에 
모든 상황에 따라 메서드 이름을 각각 정의 하는 것보다 매개변수 정보만 달리하여 동일한 이름으로 정의한다면 코드를 작성하는 입장에서나 사용하는 입장에서 직관적이고 편리하게 사용할 수 있어서..사용하는 거겠지.뭐.으하하





[ Post List ]