Media Log

객체(Object)는 정말 설명드리기 어려운 컨셉입니다.

종류(Class)가 있으면 그 종류를 실체화(Instanciate) 시킨게 객체입니다.

터무니없는 비유지만 Class가 인간이라면 질문자분께서는 인간이라는 Class의 객체에 가깝습니다.

 

메소드(Method)는 실체화된 객체 Object가 할 수 있는 일련의 행위입니다.

객체는 특정한 메소드를 불러서 실행할 수 있습니다. 예를 들어 각각의 'countNumber'라는 이름의

메소드가 있고 'student' 라는 객체가 있으면 student는 무언가를 하기 위해 student.countNumber()

같은식으로 메소드를 콜(Call) 할 수 있습니다.

 

변수(Variable)은 수학의 그것과 매우 비슷합니다.

가장 많이 쓰이는 변수의 종류(Class)로는 String, Integer, Character 등이 있습니다.

이러한 변수들은 프로그래머가 어떻게 정의하느냐에 따라 특정한 값을 가질 수 있습니다. 예를들어

'x' 라는 변수가 있고 그 종류가 integer(정수)라면 int x = 3  이런식으로 x를 3이라고 정의하실 수 있습니다.

물론 '변수'는 변수이므로 나중에 얼마든지 그 값을 바꾸실 수 있습니다.

(이 부분은 제가 한국어로 배우지않아 확실치 않은데 제가 위에 언급한 string, integer, character, double 등을

포함한 몇가지 primitive type을 variable이라 부르고 나머지 Class로부터 Instanciate가 가능한 것들을

객체라고 부르는것 같습니다. primitive type은 자바 안에 특별히 정의되어 기타 실체화가 가능한 다른 종류들과

값을 저장하는 법이 틀립니다. 이 부분은 민감한 부분이므로 나중에 자세히 배우시길 권합니다.)

 

키워드, 식별자는 중요하지 않으므로 패스하고, 가비지컬렉션은.. 프로그램을 실행할때 종종 객체가 메모리에서 삭제되지 않고 남겨지는 경우가 있는데 그럴경우 자바에서 자체적으로 남겨진 객체를 삭제하는 기능을 말합니다. 아주 간단하게는 그냥 프로그램이 메모리를 효율적으로 사용하는걸 돕기위해 자바에서 자체적으로 실행하는

기능이라고 생각하시면 될 것 같습니다. 예를 꼭 들자면....질문자님께서 푸딩을 드시다가 그만먹고 아이스크림을

드시면 자바라는 청소부(garbage collector)가 푸딩을 알아서 가져다 버려주는걸 가비지컬렉션이라고 합니다.

 

스택(Stack)은 정보를 정리하는 방법 중의 하나입니다.

스택을 구체화하자면, '위가 열려있는 통'으로 으로 생각하시면 됩니다. 밑이 막혀있기때문에

정보를 위에서부터 밑으로 하나씩 집어넣으면서 쌓고 꺼낼때는 위에서부터만 하나씩 꺼낼 수 있겠지요.

이런 구조는 웹브라우저에서 방문했던 사이트들을 기억할때에도 사용됩니다.

예를들어 질문자분께서 네이버.com에 가셨다가 hotmail.com에 가셨다가 bugs.co.kr에 가셨다가 뒤로가기

버튼을 눌러서 주소창에 http://www.naver.com라는 주소를  치지 않고도 네이버로 돌아가실 수 있는 이유는

웹브라우저가 실행되는동안 질문자분께서 방문하신 사이트의 주소를 밑의 그림처럼 저장해놓기 때문입니다.

     

    |                                 |                    |                                |                     |                               |

    |   www.bugs.co.kr    |                     |                                |                    |                               |

    | -----------------  |   뒤로가기    |                                |   뒤로가기     |                               |

    |   www.hotmail.com  |    ----->      |   www.hotmail.com  |   ------>      |                               |

    | -----------------  |                    | -----------------  |                    |                               |

    |    www.naver.com    |                    |    www.naver.com   |                    |    www.naver.com   |

    | -----------------  |                    | -----------------  |                    | ----------------- |

 

스택과 비슷한 것으로는 큐(Queue) 가 있습니다.

큐(Queue) 간단하게 한쪽에서 들어와서 반대쪽으로 나갈 수 있는 구조라고 생각하시면 됩니다.

자주쓰이는 예제로는 입구쪽으로 들어와서 계산을하고 출구로 나가는 손님들이 있습니다.

 

                       ------------->-------------->--------------->

 입구  --->       손님1    |    손님2   |    손님3   |   손님4   |  손님5---->  출구

                       ------------->-------------->--------------->

 

 

어느쪽이 입구고 어느쪽이 출구인지는 중요하지 않습니다. 실제로 큐를 Implement할때 좌로하던 우로하던

아무런 상관이 없습니다. 큐를 사용하는 사람은 들어오고 나가는 방향에 아무런 상관없이 사용할 수 있습니다.

큐는 스택과는 달리 들어온 쪽으론 나가지 못한다는 것이 중요합니다. 이는 프린터에 들어오는 출력 요청을

처리할때도 쓰입니다. 들어온 차례대로 인쇄가 되어야지 뒤에 들어온 출력요청이 뒤로 먼저 나가서는 안되겠죠.

 

 

출처 : 지식인 augustusminu

신고

submit

티스토리 툴바