PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2009/03/17 21:16:21
Name 희주
Subject Java 변수 선언 질문입니다.
안녕하세요. 자바를 공부하고 있는 학생입니다.

오늘 기초공부를 했는데요,

GregorianCalendar c = new GregorianCalendar();
->이게 class변수 선언 맞죠?

System.out.println(c.etTime());


****여기서 GregorianCalendar도 클래스, System도 클래스. 근데 왜 System은 클래스 변수 선언해서 간단하게 만들어 주지 않을까요?

그냥 System s = new System()    <-----이런식으로 하면 더 편하지 않을까요?


초보라서 잘모르겠네요. 아예 안되는건지 아니면 다른이유가 있는것일지(예를들면 가독성이라든지....아니면 필요성을 못느낀다든지...)

답변 부탁드립니다.

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
GrayScavenger
09/03/17 21:40
수정 아이콘
System 같은 클래스들은 객체를 사용자가 생성할수 없게 막아놓은 걸로 알고 있습니다.
java.sun.com의 API Reference에도 생성이 안된다고 나와 있네요.
아마도 생성자를 private(외부에서 접근할 수 없게 설정하는 키워드)으로 만든 Singleton(객체가 유일하게 하나만 존재해야 하는 디자인 패턴 기법) 객체인 듯하네요.
09/03/17 21:54
수정 아이콘
답변 감사합니다. 그런데 새로 변수로 설정한 c라는 것을 말할때 인스턴스라고 하나요?

GrayScavenger님 답변에 비추어 검색해보다 보니 인스턴스라는 말이 나오네요.
neogeese
09/03/17 22:10
수정 아이콘
이론적인건 가물 가물 하지만 그래도 사족을 조금 더 달자면

System.out.println(c.etTime()); 처럼 직접 클래스 명으로 객체를 접근 하는건 static 으로 선언 되어 있어서 그렇습니다.

System 클래스의 경우 GrayScavenger님의 답변 대로 싱글턴 객체로 생각 하셔도 무방 할듯 싶고요, 클래스 멤버들을 살펴 보시면
하드웨어 접근에서 중요한 기능을 담당 하는 클래스죠. 이런 클래스다 보니 남발 하지 못하게 할려는 목적도 있습니다.

static 선언자의 기능을 찾아 보시면 보통 객체는 생성자를 호출 했을 당시에 메모리에 할당이 되지만

static으로 선언 되어 있는 객체들은 처음 프로그램이 실행 될때 먼저 메모리에 할당이 됩니다. 프로그램이 종료 할때까지
항상 메모리에 상주해 있는 거죠. 이 경우 장점이 실행 속도가 더 빠르고(뭐 요즘은 체감 할 차이는 없습니다.) 여러 클래스들에서
참조가 쉬워 집니다.
papercut
09/03/17 22:14
수정 아이콘
인스턴스라는 것은 생성된 객체를 말합니다. 객체지향 프로그래밍에서만 쓰이는 것은 아니지만, 간단히 말해서

"년/월/일" 이것은 클래스고 "2009년/3월/17일" 이것은 인스턴스입니다. 클래스는 일종의 틀이고 인스턴스는 실제로 그 클래스가 생성되어서 어떤 값을 가질 수 있는 상태를 말하지요. 물론 날짜라는 것이 2009년 3월 17일만 있는 것이 아니라 2009년 3월 18일도 있을 수 있고 무수히 많을 수 있기 때문에 보통 인스턴스는 여러개를 만들 수 있습니다. new GregorianCalendar() 이것이 GregorianCalendar의 새로운 인스턴스를 생성하라는 말이지요. 저걸 10번 반복하면 인스턴스 10개가 생깁니다. 10개는 각각 다른 값을 가질 수 있지요. (물론 같은 값을 가질 수도 있구요.)

하지만 경우에 따라서 인스턴스가 여러개 생성되면 안되는 경우도 있고, 아예 생성할 수 없는 경우도 있습니다. 하나만 생성할 수 있도록 하는 클래스를 디자인 패턴에서 싱글턴 클래스라고 부르고, 아예 생성을 못하게 하고 메소드만 가져다 쓰게 만든 (예를 들어 Math 클래스 같은) 클래스를 유틸리티 클래스 라고 부릅니다. 크게 중요한 것은 아니지만, System 클래스의 경우 왜 생성을 못하게 했냐면, new System()이 시스템 클래스의 인스턴스를 새롭게 생성하는 명령을 의미하고, 저걸 10번 반복하면 10개의 시스템이 생겨야 되는데, 사실 컴퓨터 시스템은 물리적으로 하나일 수 밖에 없기 때문에 10개의 시스템이 생긴다는 것 자체가 말이 안되는 일이지요. 예를 들어서 System s1 = new System(); System s2 = new System(); 이랬을 때, s1.out.println("s1");이라고 해도 어차피 모니터에 출력되고, s2.out.println("s2");라고 해도 어차피 같은 모니터에 출력됩니다. 때문에 s1과 s2는 결국 같은 대상을 가리키는 것이 되지요. 결국 인스턴스가 둘 이상이 될 수 없기 때문에 하나만 가져다 쓰도록 제한한 것입니다.
사실 System 클래스라든지 싱글턴 패턴 등이 (자바를 처음 배울 때) 엄청난 의미를 가지는 것은 아닙니다만, 클래스에서 new 키워드를 이용해서 인스턴스를 생성하고 변수가 이 인스턴스를 참조하는 과정은 자바를 시작할 때 매우 중요한 부분이고 꼭 익혀야 되는 부분이기 때문에 잘 이해가 안 되시면 그림을 그려보시거나 인터넷을 좀 더 뒤져보시거나 책을 보면서 잘 알아두시는 것이 좋을 것 같네요.
neogeese
09/03/17 22:16
수정 아이콘
한가지 더 덧붙이자면 그럼 전부 static으로 선언 해서 더 편해 지는거 아닌가 라는 생각이 드실수 있을 겁니다. 하지만 static 으로 선언 된것은 하나만 존재 할수 있고 처음 실행 되자 마자 불필요하게 많은 메모리를 사용 하는 상황이 될수 있습니다.
09/03/18 07:15
수정 아이콘
답변해주신 분 모두 고맙습니다. 많은 도움이 되었습니다.^^
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
52229 외장하드 질문입니다. 도크1824 09/03/17 1824
52228 성인들을 위한 술집에 관해 질문이 있습니다. [17] 삭제됨2664 09/03/17 2664
52227 스타 쌩초보 여자가 스타를 배우고 싶다는데 [16] stats2050 09/03/17 2050
52226 Java 변수 선언 질문입니다. [6] 희주2084 09/03/17 2084
52225 토끼 키워 보신분? [11] 한마 유지로1551 09/03/17 1551
52224 pgr게시물 제목옆에 F 붙는건 무슨뜻인가요? [3] 인하대학교1963 09/03/17 1963
52223 c언어 질문 드립니다. [5] Magic_'Love'1462 09/03/17 1462
52222 이 폰트 어떤 무슨체인지 아시나요...? [5] EsPoRTSZZang2138 09/03/17 2138
52221 신영철 대법관 논란, 이회창의원이 대선후보였을때에 관한 2가지 질문입니다. [2] 2232 09/03/17 2232
52220 [진로상담]게임업계 관련질문입니다. [5] kiraseed1571 09/03/17 1571
52219 이거 안면홍조증인가요? [1] Qck mini1867 09/03/17 1867
52218 남성용 각질제거제 추천해주세요~ [7] ㅇㅇ/3215 09/03/17 3215
52216 저가형 컴퓨터 관련 질문입니다!(컴맹이 타고 있어요) [4] 낭만.로망.갈망1840 09/03/17 1840
52215 운동 질문입니다. [3] 8141532 09/03/17 1532
52214 휴대폰비 관련질문. [2] 김재혁2161 09/03/17 2161
52213 아참 그리고, 2009년 전에 나온 한국 공포 영화 하나만 추천해주세요 ^^ [11] 메타루2358 09/03/17 2358
52212 티셔츠 사려고 하는데요-_-; [3] 김라울2131 09/03/17 2131
52211 저 궁금한것이 있습니다..... 부모님 + 이성친구 (그야말로 친구) 관련... [15] 메타루1967 09/03/17 1967
52210 이종 소형면허 따기 어렵나요?; [10] Naraboyz5346 09/03/17 5346
52209 얼굴이 붓네요. [1] 김슨생1801 09/03/17 1801
52208 신촌맛집과 처음 만나는 이성과 할만한 것드 좀 추천해주세요~ [7] Go_TheMarine3618 09/03/17 3618
52205 혹시 화승 OZ 또는 이제동 관련 티셔츠 같은거 파는 곳 있나요? [2] Naana2154 09/03/17 2154
52204 아프리카tv 영상과소리가 따로따로 놉니다 [2] 시크릿7626 09/03/17 7626
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로