<426C75654AC7D1B1DBC6A9C5E4B8AEBEF3B9AEBCAD E687770>
|
|
- 효주 초
- 6 years ago
- Views:
Transcription
1 BlueJ 튜토리얼 한국어버전 2.0 BlueJ Version 2.0.x 用 English Version Michael Kölling Mærsk Insitute University of Southern Denmark Korean Version 2.0 황석형교수 Project Member Ver. 1.0 : 강석진, 민상호, 오경묵, 유형순, 이승환. Ver. 2.0 : 강원준선문대학교컴퓨터정보학부 1
2 1. 서문 BlueJ의소개 설명범위와사용자 복제, 저작권과배포 피드백 4 2. 설치 Windows에설치하는방법 MacOS에설치하는방법 리눅스 / 유닉스및기타시스템에설치하는방법 설치할때발생하는문제점 6 3. 시작하기 - 편집 / 컴파일 / 실행 BlueJ 시작하기 프로젝트열기 객체생성하기 실행하기 클래스편집하기 컴파일하기 컴파일러에러들에관한도움말 추가기능 객체상태검사 매개변수를통해서객체전달하기 새프로젝트만들기 프로젝트디렉토리만들기 클래스만들기 의존관계만들기 요소들의제거 코드패드사용하기 코드패드보기 간단한식의표현 객체가져오기 객체검사하기 명령문실행하기 멀티라인명령문들과일련의명령문들 변수를이용한명령문실행시키기 사용자입력이력기능 25 2
3 7. 디버깅 중단점설정하기 코드의단계별실행 변수들의검사 중지와종료 독립형어플리케이션생성 애플릿만들기 애플릿실행하기 애플릿만들기 애플릿테스트하기 기타기능들 BlueJ로만들지않은패키지오픈하기 여러분의프로젝트에기존의클래스들을추가하기 main 메소드와다른정적메소드들의호출 문서생성하기 라이브러리를가지고작업하기 라이브러리클래스로부터객체생성하기 요약정리 시작하기 추가기능 새프로젝트만들기 디버깅 독립형어플리케이션생성 애플릿만들기 기타기능들 번역을마치며 39 3
4 1. 서문 1.1. BlueJ 의소개 본튜토리얼은 BlueJ 프로그래밍환경을사용하는방법을설명하고있습니다. BlueJ는초급자바프로그래밍교육을위해설계된자바개발환경으로서, 호주멜버른의 Monash대학및 Southern Denmark대학의 BlueJ팀에의해설계되고구현되었습니다. BlueJ에관한보다상세한정보는 설명범위와사용자 본튜토리얼은 BlueJ 프로그래밍환경에서제공하는제반기능들에익숙해지고자하는사람들을위해작성되었습니다. 따라서, BlueJ 자체의설계및구축, 그리고관련기초연구에관한사항들은설명하지않습니다. 또한, 본튜토리얼은자바언어를교육하기위한목적으로작성되지않았습니다. 따라서, 자바프로그래밍초보자들은자바언어와관련된교재또는관련강좌를참조하여학습하기바랍니다. 본튜토리얼은 BlueJ를이해하기위한참고메뉴얼이아닙니다. 따라서, BlueJ의모든특징들을상세히설명하기보다는, 기본적인특징들만을간략하게설명하고있습니다. 자세한내용은 BlueJ 홈페이지 ( 에 The BlueJ Environment Reference Manual을참조하시기바랍니다. 본튜토리얼의모든절들은한줄정도의간략한요약문장으로시작됩니다. 따라서, 사용자들에게이미친숙한내용은생략하며선택적으로읽을수있도록구성하였습니다. 제 11장에서는빠른참조 (quick reference) 를위하여전체내용을요약정리해놓았습니다 복제, 저작권과배포 BlueJ 시스템과본튜토리얼은어떤형태로든누구나무료로사용할수있으며, 자유롭게배포할수있습니다. BlueJ 시스템및관련문서들은저작권자의허락없이판매 ( 패키지화한형태 ) 될수없습니다. BlueJ의저작권은 M.Kölling 과 J.Rosenberg에게있습니다 피드백 BlueJ 시스템및본튜토리얼에대한코멘트, 질문, 수정, 평가등을환영하며, Michael Kölling (mik@mip.sdu.dk) 에게메일을보내기바라며, 번역본에대한문의는 shwang@sunmoon.ac.kr로해주시기바랍니다. 4
5 2. 설치 BlueJ 는 Windows, MacOS 그리고기타다른시스템용이있으며, 설치는매우간단합니다. < 설치를위한필요환경 > BlueJ를사용하기위해서는컴퓨터시스템에 J2SE v1.4( 일명, JDK 1.4) 이후의버전이설치되어있어야합니다. JDK가설치되어있지않을경우 Sun Microsystem사의웹사이트 ( 에서다운로드받으면됩니다. MacOS X의경우, 최신판 J2SE 버전이이미설치되어있습니다 ( 이경우여러분이직접설치하지않아도됩니다 ). 만약, "JRE"(Java Runtime Environment) 와 "SDK"(Software Development Kit) 를모두제공하는다운로드페이지를찾았다면, "SDK" 를다운로드받아야합니다 (JRE는적합하지않습니다 ) Windows 에설치하는방법 Windows용설치파일은 bluejsetup-xxx.exe이며, 여기서 xxx는버전번호를의미합니다. 예를들어, BlueJ 버전2.0.0의경우, 설치파일은 bluejsetup-200.exe입니다. 여러분은이파일을디스크형태로구하거나, BlueJ 웹사이트 ( 에서다운로드받아실행시키면됩니다. 설치파일을실행하면, BlueJ를설치할디렉토리를선택해야합니다. 또한, 바탕화면및시작메뉴에단축키설치여부에관한설정을선택해야합니다. 설치가종료되면 BlueJ 설치디렉토리내에 bluej.exe실행화일을찾을수있습니다. BlueJ를처음실행시키면자바시스템 (JDK) 을찾게될것입니다. 좀더최신의자바시스템을찾으면 ( 예를들어 JDK 1.4.2버전이있다면 JDK 1.5.0를설치 ), 여러분이사용할버전을선택하라는대화상자가나타날것입니다. 찾지못할경우에는, 사용자가스스로파일의위치를찾아야합니다 ( 이런경우는, JDK시스템이설치되었지만, 해당레지스트리엔트리가이미제거된경우에발생합니다 ). 또한, BlueJ설치파일은 vmselect.exe라는프로그램을설치합니다. 이프로그램을사용하면 BlueJ가사용하는자바버전을나중에변경할수있습니다. 즉, vmselect를실행하여, 다른자바버전으로 BlueJ를실행할수있습니다. 어떠한 JDK를선택하였는지에대한정보가각각의 BlueJ 버전에저장됩니다. 서로다른버전의 BlueJ를설치한경우, JDK BlueJ 와 JDK BlueJ와같이조합하여사용할수있습니다. BlueJ의 Java버전을변경하면, 동일한사용자를위한동일버전의 BlueJ설치가모두변경됩니다 맥킨토시에설치하는방법 BlueJ는 MacOS X에서만동작한다는사실을명심하십시오. MacOS용설치파일은 BlueJ-xxx.sit 입니다. 여기서 xxx는버전번호를말합니다. 예를들어 BlueJ버전 설치파일은 BlueJ-200.sit 입니다. 여러분은이파일을디스크형태로구하거나또는 BlueJ웹사이트 ( 에서다운로드받을수있습니다. 이파일은 StuffIt Expander를사용하여압축을풀수있습니다. 대부분의브라우저들이압축을풀어주지만, 그렇지않은경우에는파일을더블클릭해서풀어야합니다. 압축을푼후에는 5
6 BlueJ-xxx라는폴더가생길것입니다. 이폴더를 application폴더 ( 또는, 저장하고싶은폴더어디든지 ) 로이동하면설치과정이완료됩니다 리눅스 / 유닉스및기타시스템에설치하는방법 일반적인설치파일은실행가능한 jar형태의파일, 즉, bluej-xxx.jar입니다. 여기서, xxx는버전번호입니다. 예를들어 BlueJ 버전 2.0.0은 bluej-200.jar입니다. 이파일은디스크형태로구하거나 BlueJ웹사이트 ( 에서다운로드받을수있습니다. 다음명령어에의해설치파일이실행됩니다. ( 아래에서는설치파일 bluej-120.jar 를사용하는경우를말합니다. 여러분들은알맞은버전번호가적힌파일의이름을사용하기바랍니다.) <j2se-path>/bin/java -jar bluej-200.jar 여기서, <j2se-path> 는 J2SE SDK가설치되어있는디렉토리를의미합니다. 윈도우가화면에나타나면, BlueJ설치디렉토리와 BlueJ를동작시키기위해사용할 JDK버전을선택해야합니다. 주의할점은 BlueJ까지의경로명 ( 상위디렉토리중에서어느하나 ) 에는공백을포함해서는안된다는것입니다. 설치 (Install) 를클릭하면 BlueJ가설치됩니다 설치할때발생하는문제점 설치할때문제가발생할경우, BlueJ 웹사이트의 FAQ( 를클릭하여 How To Ask For Help( 를읽어보기바랍니다. 6
7 3. 시작하기 - 편집 / 컴파일 / 실행 3.1. BlueJ 시작하기 Windows와 MacOS에서는인스톨된 BlueJ 프로그램을실행하십시오. 유닉스시스템에서는 Installer가설치된디렉토리에 bluej 라는스크립트파일을인스톨합니다. GUI(Graphic User Interface) 환경에서는 bluej 파일을더블클릭하여간단히실행할수있습니다. 그리고명령행에서는매개변수없이 bluej만을입력하여실행하거나프로젝트명을매개변수화하여실행하는방법이있습니다. 또는 $ bluej $ bluej example/people 그림 1 : BlueJ 메인윈도우 7
8 3.2. 프로젝트열기 요약프로젝트를열기위해 Project 메뉴에서 Open 을선택하십시오. 프로젝트란, 관련있는여러개의파일들을묶어서관리하기위한하나의작업단위를말합니다. BlueJ 프로젝트는표준자바패키지들처럼프로젝트에관련된파일들을모아놓은디렉토리입니다. 우선 BlueJ를시작한후에 Project - Open... 메뉴를선택하여프로젝트를여십시오. 표준 BlueJ 배포판의 examples 디렉토리에는몇개의예제프로젝트들이있습니다. 이예제들중이번절에서는 people 프로젝트를다룰것입니다. examples 디렉토리에들어있는 people 프로젝트를선택해서프로젝트를오픈하십시오. examples 디렉토리는 BlueJ 홈디렉토리에서찾을수있습니다. 프로젝트를열면그림 1과유사한윈도우를볼수있을것입니다. 하지만설치환경에따라서보이는모습이차이가날수도있습니다 객체생성하기 요약객체를생성하기위해서는클래스팝업메뉴에서생성자를선택하십시오. BlueJ의기본적인특징들중하나는, 완벽한어플리케이션을실행할수있을뿐만아니라하나의클래스에서생성된객체도 public 메소드들을실행함으로써사용자와단일객체간의상호작용을할수있다는것입니다. BlueJ에서의실행은객체를생성하고, 생성된객체의메소드중하나를호출하는것을말합니다. 이러한실행은작성완료된클래스를개별적으로테스트해볼수있기때문에어플리케이션개발에매우큰도움이됩니다. 따라서, 처음부터완벽한어플리케이션을만들필요는없습니다. 노트 : 정적메소드는객체를만들지않고도직접실행할수있습니다. 메인메소드 (main method) 와같은정적메소드 (static method) 는자바어플리케이션에서일어나는일반적인일들을 ( 정적메인메소드를실행함으로서자바어플리케이션을실행하기 ) 할수있습니다. 위와관련된사항은나중에다시살펴보도록하겠습니다. 우선, 우리는자바환경에서일반적으로할수없는보다흥미로운몇가지다른것들을다뤄보겠습니다. 메인윈도우중앙의사각형들은 (Database, Person, Staff, Student로명명된사각형들 ) 현재작업중인어플리케이션에포함된클래스들을아이콘형식으로보여주는것입니다. 클래스아이콘에서마우스오른쪽버튼을클릭하면 ( 매킨토시 :ctrl+click 1) ) 클래스에서적용가능한 operation들이있는메뉴를볼수있습니다 ( 그림 2). 그림 2의팝업메뉴에는두개의생성자함수들과 BlueJ 개발환경에서제공해주는몇가지기능들을보여줍니다. 1) 이튜토리얼에서마우스오른쪽버튼클릭 (right-click) 은매킨토시사용자들에게는컨트롤버튼 + 클릭 (ctrl-click) 에해당됩니다. 8
9 그림 2 : 클래스기능들 ( 팝업메뉴 ) Staff 객체를생성하기위해서는 Staff 아이콘에서마우스오른쪽버튼을클릭합니다 ( 그림 2에서보여지는팝업메뉴 ). 팝업메뉴는 Staff 객체를생성할수있는두개의생성자함수들 2) 을보여줍니다. 하나는매개변수들이없는생성자함수이고다른하나는매개변수들을가지고있는생성자함수입니다. 우선매개변수들이없는생성자함수를선택하십시오. 그러면그림 3과같은대화상자가나타날것입니다. 그림 3 : 매개변수없는생성자함수로객체생성하기. 2) new Staff(), new Staff(name, yearofbirth, roomnumber) 9
10 이대화상자는생성할객체의이름을입력받습니다. 또한동시에기본적인이름 (staff_1) 이제공됩니다. 이이름 (staff1) 은지금사용하기에무리가없기때문에바로 OK 버튼을클릭하십시오. 그러면 Staff 객체가생성될것입니다. 생성된객체는오브젝트벤치 (object bench) 에보여지게됩니다 ( 그림 4). 여기까지가객체생성에관련된모든사항입니다. 다시정리하면, 클래스팝업메뉴에서생성자함수를선택하여실행하면오브젝트벤치에생성된객체가보여지게됩니다. 그림 4 : 오브젝트벤치에생성된객체 Person 클래스아이콘에는추상클래스를나타내는 <<abstract>> 표기가있습니다. 자바언어명세서에서정의되었듯이추상클래스는객체를생성할수없습니다. 정말로, 추상클래스는객체를생성할수없는지직접확인해보기바랍니다 실행하기 요약메소드를실행시키기위해서는객체팝업메뉴에서메소드를선택하십시오. 객체가생성되면 public 메소드들을실행시킬수있습니다. 오브젝트벤치에있는객체에대하여마우스오른쪽버튼을클릭하면객체메소드들이포함된팝업메뉴를볼수있습니다 ( 그림 5). 이메뉴는클릭한객체에서사용할수있는메소드들과 BlueJ 환경에서제공하는두개의특별한기능들 (Inspect, Remove) 을보여줍니다. 이기능들에대해서는나중에다시살펴보도록하고, 우선메소드에대해자세히살펴보겠습니다. 그림 5 : 객체메뉴 10
11 그림 5와같이 getroom과 setroom 메소드들은각각 staff 멤버의방번호 (room number) 를설정하고반환하는동작을합니다. getroom 메소드를호출해봅시다. 객체메뉴의 getroom 메소드를선택하여실행합니다. 그러면대화상자에서실행결과를볼수있을것입니다 ( 그림 6). 그림 6과같이결과의내용이 "(unknown room)" 이됩니다. 왜냐하면, Staff 객체에대한방번호를지정하지않았기때문입니다. 그림 6 : 메소드호출결과 슈퍼클래스에서상속된메소드들은서브메뉴 (inherited from Person) 에서선택하여사용할수있습니다. 객체팝업메뉴의상단에는두개의서브메뉴 3) 가있을것입니다. 하나는 Object 클래스로부터상속받은메소드들이고다른하나는 Person 클래스로부터상속받은메소드들입니다 ( 그림 5). 따라서, 서브메뉴를선택하면 getname과같은 Person 클래스의메소드들을호출할수있습니다. getname을호출해보세요. 그러면 "(unknown name)" 이라는불분명한결과를보게될것입니다. 왜냐하면 Person 클래스의 name 속성을지정하지않았기때문입니다. 이제방번호 ( 를지정해봅시다. 매개변수를갖는함수호출방법을알게될것입니다. (getroom 과 getname 메소드는반환값들을가지지만, 매개변수들은가지지않습니다.) 객체팝업메뉴의 setroom 메소드를호출하면매개변수들을입력받기위한대화상자가나타납니다. 대화상자에나타나는프롬프트위치에매개변수를입력하십시오 ( 그림 7). 그림 7 : 매개변수들을입력받는메소드호출대화상자 3) inherited from Object inherited from Person 11
12 이대화상자에서는호출되어지는메소드의인터페이스 ( 주석과시그니처포함 ) 를보여줍니다. 그아래에는매개변수값을입력할수있는텍스트필드가있습니다. 또한, 윗부분의시그니처에는매개변수의데이터형이 String형임을알려줍니다. 이제텍스트필드에새로운방번호 ( 이중인용부호를가진문자열 ) 를입력하시고 OK버튼을누르십시오. 위메소드는반환값이없기때문에더이상의결과창이나타나지않습니다. 그럼, 정말로방번호가변했는지 getroom 메소드를호출하여확인해보십시오. 이밖에다른객체생성과메소드호출을연습해보기바랍니다. 익숙해질때까지, 매개변수들을가진생성자함수를호출해보고, 좀더다양한메소드들을실행해보십시오 클래스편집하기 요약클래스의소스코드를편집하기위해서는클래스아이콘을더블클릭하세요. 지금까지는단지객체의인터페이스만을다루어보았습니다. 지금부터는클래스내부구현부분을다루어보겠습니다. 클래스기능들중 ( 클래스아이콘에서마우스오른쪽버튼을클릭하면나타나는기능들 ) Open Editor를선택하면클래스구현부분을볼수있습니다. 또한클래스아이콘을더블클릭하여똑같은기능을수행할수있습니다. 에디터에대한사용방법이간단함으로이튜토리얼에서는자세히다루지않겠습니다. 에디터에대한자세한내용은후에별도로다루어보겠습니다. Staff 클래스의구현부분을에디터를사용하여오픈한후 getroom 메소드의구현부분을찾아보십시오. getroom 메소드의이름에서알수있듯이 staff 멤버의방번호를반환합니다. 메소드반환값앞부분에 "room" 을추가하여반환값을 "M.3.18" 에서 "room M.3.18" 로변경해보십시오. 즉, 을 return room; return "room" + room; 으로변경합니다. BlueJ는자바를완벽히지원하므로클래스를구현하는데있어서특별한제한사항은없습니다 컴파일하기 요약 클래스를컴파일하기위해서는에디터에있는 Compile버튼을클릭하십시오. 프로젝트를컴파일하기위해서는프로젝트윈도우의 Compile 버튼을클릭하십시오. 에디터를수정한후메인윈도우를확인해보십시오. 그러면 Staff 클래스의아이콘에체크표시가생겼다는것을알수있습니다. 체크표시가생긴클래스는변경된후에컴파일되지않았음을나타냅니다. 다시에디터를살펴보겠습니다. 12
13 노트 : 프로젝트를처음열었을때왜클래스아이콘에체크표시가되어있지않은지궁금할수있습니다. people 프로젝트내의클래스들은이미컴파일되어있기때문에체크표시가되어있지않습니다. 종종 BlueJ 프로젝트들은컴파일되지않은상태로배포되므로, 프로젝트를처음으로오픈하면대부분의클래스아이콘들은체크표시가되어있을것입니다. 에디터의상단에있는툴바에는자주사용되는기능을수행하는몇개의버튼들이있습니다. 그중의하나가 Compile 버튼입니다. 컴파일기능은에디터에서해당클래스를직접컴파일할수있게해줍니다. Compile 버튼을눌러보십시오. 에러가없다면에디터의아래부분에있는정보창 (information area) 에클래스가컴파일되었다는메시지를출력할것입니다. 만약구문에러 (syntax error) 가생겼다면에러가발생한라인은반전되고, 정보창에에러메세지가출력될것입니다. ( 컴파일을처음해보는경우에는, 세미콜론빼먹기등과같은구문에러를직접만들어보고적절한에러메시지가표시되는지다시한번컴파일하여확인해보십시오.) 노트 : 클래스소스코드를반드시저장할필요는없습니다. 소스들은사용되어질때마다 ( 예를들어, 클래스가컴파일되기전이나에디터가닫힐경우 ) 자동으로저장됩니다. 단, 사용하는시스템이매우불안정하고, 자주충돌을일으킨다거나, 작업내용이사라질것이걱정된다면 Class 메뉴에있는기능을이용하여확실히저장할수있습니다. 클래스를성공적으로컴파일하였다면에디터를닫으십시오. 프로젝트윈도우에툴바역시 Compile 버튼을가지고있습니다. 이컴파일기능은전체프로젝트를컴파일합니다. ( 컴파일이필요한클래스들만올바른순서대로재컴파일합니다.) 두개이상의클래스들을수정한후에 ( 수정된클래스아이콘에체크표시가나타납니다.) Compile 버튼을눌러보십시오. 만약컴파일되는클래스들중에서에러가발생한다면, 에디터창이열려에러가발생한위치와에러메시지가표시될것입니다. 다시오브젝트벤치를보면객체가없을것입니다. 오브젝트벤치의객체는클래스구현부분이변경될때마다사라집니다 컴파일러에러들에관한도움말 요약 컴파일러에러메시지에대한도움말이필요하다면, 에러메시지오른쪽에있는물음표를클릭하십시오. 자바를처음배우는대부분의학생들은자주컴파일러에러메시지를이해하는데어려워합니다. 따라서몇가지도움을주고자합니다. 에디터를다시오픈하십시오. 소스코드파일에에러를만들고컴파일하면에러메시지가에디터정보창에보여질것입니다. 정보창의오른쪽에보여지는물음표를클릭하면지금발생한에러메시지에대한추가정보를볼수있습니다 ( 그림 8). 13
14 그림 8 : 컴파일러에러와 Help 버튼 여기서모든에러메시지들에대한도움말이제공되는것은아닙니다. 일부도움말은아직작성중입니다. 하지만이미많은에러들이설명되어있기때문에시도해볼가치가있습니다. 아직작성되지않은도움말들은추후에배포될 BlueJ 버전에포함시킬것입니다. 14
15 4. 추가기능 이번절에서는자바개발환경에서사용가능한몇가지추가기능들에대해서살펴보도록하겠습니다. 여기서소개할추가기능들은필수적인것은아니지만, 매우빈번하게사용됩니다 객체상태검사 요약객체상태검사는객체의내부상태를보여줌으로써디버깅을도와줍니다. 객체의메소드를실행시킬때, 그림 5와같이, 사용자가정의한메소드외에객체들에사용가능한객체상태검사기능을사용할수있습니다. 이기능은객체의인스턴스변수들 (fields) 의상태를체크해줍니다. 사용자로부터값을입력받아서객체를생성해보십시오 ( 예, 사용자로부터매개변수의값을입력받아서실행되는생성자함수를이용하여 Staff 클래스로부터객체를생성 ). 그런후에생성된객체에마우스를올려놓고오른쪽버튼을클릭하여팝업메뉴에서 Inspect를선택합니다. 그러면, 객체의필드들과그들의데이터타입, 그리고필드값들이표시되는대화상자가나타납니다.( 그림 9) 그림 9 : 객체상태검사대화상자 객체상태검사는객체의상태를변화시키는기능이올바르게실행되었는지아닌지를즉시체크할수있습니다. 따라서, 객체상태검사는간단한디버깅도구라고할수있습니다. Staff 예제에서, 모든필드들은간단한데이터형들 ( 기본자료형, 또는문자열형 ) 로구성되어있습니다. 이데이터타입들의값은직접볼수있어서, 생성자함수가올바르게수행되었는지를즉시볼수있습니다. 좀더복잡한경우를살펴보면, 필드들의값들은사용자가정의한객체들을참조할수도있습니다. 이와같은예를살펴보기위해여기에서는다른프로젝트를사용해보겠습니다. 기본적인 BlueJ 배포판에포함되어있는 people2 프로젝트를오픈합니다. People2 는그림 10 에서보여지고있습니다. 보다시피, 이두번째예제에는이전에살펴보았던프로젝트 (People) 의클래스들에더하여 Address 클래스를가지고있습니다. Person 클래스에서필드중하나는사용자정의형 (Address) 입니다. 15
16 그림 10 : People2 프로젝트윈도우 객체필드들을객체상태검사 (Inspection) 하기위해서, Staff 클래스로부터객체를생성하고이객체의 setaddress 메소드를호출하십시오 (Person의하위메뉴 4) 에서 setaddress 메소드를발견하게될것입니다 ). 주소를입력하고나면내부적으로, Staff 클래스에서생성된객체가갖고있는코드는 Address 클래스의객체를생성하고, 그것의 address 필드에 Address 객체를저장합니다. 이제, Staff 객체를객체상태검사합시다. 객체상태검사결과가나타나는대화상자는그림 11과같습니다. Staff 객체의필드들속에는 address가포함되어있습니다. 보시다시피 address 필드의값은다른객체를참조하고있음을화살표로보여줍니다. 이필드의값은매우복잡한사용자정의형객체이므로, 그림 11의대화상자에직접나타낼수없습니다. address 필드의값을좀더살펴보기위해서, object fields list에나타나는 address 필드를선택하고, 객체상태검사버튼을클릭하십시오. (address 필드를더블클릭해도됩니다.) 그림 12와같이또다른객체상태검사대화상자가오픈되면서, Address 객체의세부사항들이표시됩니다. 4) Person 하위메뉴 : staff 객체생성후, 마우스오른쪽버튼을클릭하여나타나는팝업메뉴에는 staff 클래스의슈퍼클래스 (Person) 로부터계승된메소드들이나열되어있습니다. 16
17 그림 11 : 객체참조를가지는상태검사 그림 12 : 내부객체의상태검사 선택한필드가 public인경우에는객체상태검사버튼을클릭하는대신에, address 필드를선택하고 Get 버튼을클릭해도됩니다. 이와같은조작을하게되면, 선택된객체가오브젝트벤치에보여지게됩니다. 오브젝트벤치에나타난객체의메소드를호출함으로써, 좀더상세한사항들을시험해볼수있습니다. 17
18 4.2. 매개변수를통해서객체전달하기 요약 객체아이콘을클릭하면메소드호출의매개변수를통하여객체를전달할수있습니다. 매개변수를통해서다른객체의메소드로객체를전달할수있습니다. 예제를살펴봅시다. Database 클래스의객체를생성합니다. (Database 클래스는매개변수를갖지않는생성자함수를한개가지고있으므로, 객체의생성은매우간단합니다.) Database 객체는사람들 (Person) 의목록을보유하는기능을갖고있습니다. Database 객체는 person 객체들을추가하는기능과, 현재목록에저장된모든사람들을보여주는기능을가지고있습니다. (Database라고부르는것은사실과장된표현입니다.) 만약에오브젝트벤치에 Staff나 Student 객체가없다면, Staff나 Student의객체를생성하십시오. 그렇게하기위해, Database 객체와 Staff나 Student 객체가오브젝트벤치에서동시에필요합니다. 이제 Database 객체의 addperson 메소드를호출합니다. 시그니처에는 Person형의매개변수가필요합니다. Person 클래스는추상클래스이므로, Person형의객체를직접만들수없다는것을기억하십시오. 그러나, Student 객체나 Staff 객체는 Person 객체의서브타이핑 (subtyping) 이므로, Person 객체대신사용할수있습니다. 그래서, Person 객체가필요한곳에 Student 객체나 Staff 객체를대신해서사용할수있습니다. 오브젝트벤치에있는객체를매개변수를통해서, 기동시킨메소드로전달하기위해서는, 매개변수필드안에전달시킬객체이름을입력하는방법과전달시킬객체를클릭하는방법이있습니다. 후자의방법을사용할경우, 메소드호출대화상자에객체이름이입력됩니다. OK버튼을클릭하면함수가호출됩니다. 이메소드는리턴값이없어서, 결과를직접볼수는없습니다. Database 의 listall 메소드를호출하여 addperson 메소드가올바로수행되었는지확인할수있습니다. listall 메소드는 Person 객체의정보를표준출력합니다. Person 객체의정보를보여주기위한텍스트터미널이자동적으로오픈되는것을알수있습니다. 한개이상의 Person 객체들을 Database 객체에삽입해보십시오. 18
19 5. 새프로젝트만들기 이장에서는새로운프로젝트를만드는방법에대해서살펴보겠습니다 프로젝트디렉토리만들기 요약프로젝트를만들기위해서는, Project 메뉴에서 New Project 를선택합니다. 프로젝트를만들기위해서는, 메뉴에서 Project - New Project... 를선택합니다. 파일입력대화상자가열리게되면이곳에프로젝트이름을입력하고, 저장할위치를선택합니다. 지금한번확인해보십시오. 새프로젝트의이름은어떠한것을사용해도상관없습니다. OK버튼을클릭하시면앞서입력했던이름의디렉토리가생성되고, 메인윈도우에는새로운프로젝트가생성될것입니다 클래스만들기 요약클래스를새로만들때는 New Class 버튼을클릭하고클래스이름을입력합니다. 또다른방법으로서, 프로젝트툴바에있는 New Class 버튼을클릭하여클래스이름을지정하면새로운클래스를만들수있습니다. 여기서클래스이름은반드시적합한자바식별자를입력해야합니다. 클래스는 4가지유형 ( 추상클래스, 인터페이스, 애플릿또는기본적인구상클래스 ) 중에서선택하여만들수있습니다. 어떠한유형을선택하느냐에따라서, 클래스내부에자동적으로만들어지는코드들이결정됩니다. 나중에클래스내의소스코드를편집 / 변경함으로써클래스의유형을변경할수있습니다 ( 예를들어, abstract 란키워드를코드안에삽입하여추상클래스로변경 ). 클래스가만들어지면클래스다이어그램영역에아이콘으로표시됩니다. 만약그것이기본구상클래스가아닌경우, 해당클래스의유형 ( 인터페이스, 추상또는애플릿 ) 이아이콘에표시될것입니다. 새로운클래스에대하여에디터를오픈해보면, 기본적인코드가자동으로작성되어있음을알수있습니다. 이러한기본적인코드는코딩을쉽게시작할수있도록도와줍니다. 이러한기본코드는문법적으로정확하기때문에컴파일될수있습니다 ( 그러나많은일을하지는않습니다 ). 몇개의클래스를만들어보고컴파일을해봅시다. 19
20 5.3. 의존관계만들기 요약 화살표를만들기위해서는, 화살표버튼을클릭하고다이어그램영역에서화살표를드래그하거나에디터를이용하여소스코드를작성합니다. 클래스다이어그램에서클래스간의의존관계는화살표로나타내는데, 상속관계 (extends 또는 implements) 는더블화살표 ( ) 로보여주고 uses관계는싱글화살표 ( ) 로보여줍니다. 의존관계는다이어그램영역에서직접화살표로추가하거나소스코드에서문자로추가할수있습니다. 만약다이어그램영역에서화살표를추가했다면소스코드에도자동적으로의존관계가입력되고, 소스코드에서의존관계를입력했다면다이어그램영역에서도화살표가추가됩니다. 다이어그램영역에서화살표를추가하려면, 원하는화살표버튼 (extends 또는 implements 는더블화살표, uses관계는싱글화살표 ) 을클릭하고하나의클래스에서다른클래스로화살표를드래그합니다. 클래스나인터페이스의소스코드내에 extends 또는 implements 정의를입력함으로써상속관계화살표를추가할수있습니다. uses관계화살표를추가할경우, 화살표가가리키는대상이다른패키지의클래스가아닌경우, 소스코드는바로변경되지않습니다. ( 다만화살표가가리키는대상이다른패키지의클래스인경우는 import문장이생성됩니다. 그러나지금까지의예에서는다루지않았습니다 ). 소스코드에서실제로사용하지않고있는클래스를가리키는 uses관계화살표를다이어그램에추가하면, 해당클래스가사용되지않으면서 uses관계가선언되었음 이라는경고메시지가발생됩니다. 텍스트로화살표를추가하는것은어렵지않습니다 : 보통때처럼소스코드를입력하십시오. 그러면클래스를저장하자마자, 다이어그램에도추가될것입니다 요소들의제거 요약 클래스나화살표를삭제하려면, 대상클래스또는화살표의팝업메뉴에서 Remove를선택하십시오. 다이어그램으로부터클래스를삭제하려면, 삭제하려는클래스를선택하고 Edit 메뉴로부터 Remove Class를선택하거나, 삭제대상클래스의팝업메뉴에서 Remove를선택하여삭제할수있습니다. 화살표를삭제할때는우선화살표를선택한후 Edit 메뉴에서 Remove 를선택하거나팝업메뉴에서삭제할수있습니다. 20
21 6. 코드패드의사용 BlueJ 코드패드는자바코드 ( 표현식과명령문 ) 의일부분을쉽고빠르게평가할수있는기능을제공합니다. 따라서, 코드패드는자바언어로작성된프로그램코드의의미를상세히조사하거나구문을예증하고시험하는데사용할수있습니다 코드패드나타내기 요약 코드패드를사용하기위해보기메뉴에서코드패드보기 (Show Code Pad) 를선택하십시오 코드패드는 BlueJ 초기실행화면상에보여지지않습니다. 코드패드를나타내기위해서는보기메뉴에서코드패드보기메뉴를선택하십시오. 그러면, BlueJ 메인화면의오른쪽아랫편, 즉, 오브젝트벤치의오른쪽에나타납니다 ( 그림 13). 코드패드와오브젝트벤치사이에있는가로선과세로선을조정하여크기를바꿀수있습니다. 코드패드영역에는표현식또는문장들을입력할수있습니다. 키보드의 Enter를누르면입력된표현식또는문장이라인단위로평가되어그결과가화면에나타납니다. 그림 13 : 코드패드를나타낸메인화면 21
22 6.2. 간단한표현식의평가 요약코드패드에자바표현식을간단히입력함으로써평가할수있습니다. 코드패드는간단한표현식을평가하는데사용할수있습니다. 다음의예를입력해봅시다 hello".length() Math.max(33, 4) (int) 33.7 javax.swing.joptionpane.showinputdialog(null, "Name:") 표현식은표준자바값과객체그리고현재프로젝트내에작성된클래스까지도참조할수있습니다. 코드패드는결과값과함께해당결과값의타입을괄호안에출력할것입니다. 만약잘못된표현식이입력된경우에는에러메시지를출력해줄것입니다. 또한오브젝트벤치위에생성해놓은객체들도코드패드에서사용할수있습니다. 예를들면, Student 클래스로부터한개의객체를생성하여오브젝트벤치에올려놓아봅시다 ( 클래스팝업메뉴를이용해좀더빠르게수행할수있습니다 ). 생성된객체의이름은 student1입니다. 코드패드안에다음과같이입력할수있습니다. student1.getname() 또한, 여러분이작성한프로젝트에있는클래스들이제공하는모든가용한메소드들을참조할수있습니다 객체가져오기 요약 코드패드로부터객체를오브젝트밴치로이동하기위해서는객체아이콘을드래그하십시오 코드패드에서는표현식의결과값이단순한값이아닌객체인경우가있습니다. 이와같은경우, 결과값은 <object reference> 에이어서객체의타입 ( 클래스 ) 이표시됩니다. 또한, 결과값이표시되는라인의선두부분에작은객체아이콘이나타납니다 ( 그림 14) 그림 14 : 코드패드에서객체의결과를표시 22
23 만약코드패드의표현식평가결과가문자열인경우, 결과값이출력되어지는라인에는문자열의값과더불어작은객체아이콘이출력됨을알수있습니다 ( 왜냐하면, 문자열은객체이므로 ). 객체를생성하기위한표현식몇가지의예는다음과같습니다. new Student() "marmelade".substring(3,8) new java.util.random() "hello" + "world" 위표현식을실행하여얻어진결과값 ( 객체 ) 들을이후의작업에서지속적으로사용하기위해서는객체아이콘을이용하면됩니다. 즉, 코드패드에있는객체아이콘을선택하여오브젝트벤치쪽으로드래그합니다 ( 그림 15). 이와같이함으로써해당객체를오브젝트벤치에위치시킬수있게되고, 오브젝트벤치에들어간객체에대해서는팝업메뉴또는코드패드를이용하여보다많은메소드호출을실행시킬수있습니다. 그림 15 : 코드패드에서생성된객체를오브젝트벤치로가져오기 6.4. 객체검사하기 요약코드패드에서생성된객체를검사하기위해서는객체아이콘을더블클릭하십시오. 코드패드를이용하여표현식을평가한결과로써얻어진객체에대하여, 검사를수행하려는경우, 검사대상객체를오브젝트벤치에위치시키지않고도검사를수행할수있습니다. 즉, 코드패드에나타난객체아이콘을더블클릭함으로써앞서설명했던객체상태검사화면이나타납니다 명령문실행하기 요약코드패드에명령문들을입력하여실행시킬수있습니다. 23
24 자바명령문들 ( 값을리턴하지않는명령문들 ) 을코드패드를이용하여실행시킬수있습니다. 예를들어다음과같이입력해보십시오. System.out.println("Gurkensalat"); System.out.println(new java.util.random().nextint(10)); 위와같은명령문들은문장의마지막부분에세미콜론을포함하거나, 포함하지않은형태로평가되어올바르게실행됩니다 멀티라인명령문 ( 여러개의라인에이어진명령문 ) 들과일련의명령문들 요약 멀티라인명령문을입력하기위해서는해당라인의끝부분에서 shift-enter를사용하십시오. 일련의명령문들을입력하거나여러개의라인에이어진명령문들 ( 멀티라인명령문 ) 을입력하기위해서는입력라인의끝부분에서 shift-enter를사용하십시오. shift-enter를사용함으로써, 입력된내용을실행시키지않은상태로커서는다음라인에시작부분으로이동하게됩니다. 마지막입력라인에끝부분에서 Enter를입력하게되면지금까지입력한라인들을종합하여평가합니다. 예를들어다음과같은 for문을실행시켜봅시다. for (int i=0; i<5; i++){ System.out.println("number: " + i); } 6.7. 변수를이용한명령문실행시키기 요약 ( 멀티라인 ) 명령문들에는지역변수가사용될수있습니다. 오브젝트벤치에있는객체들에이름은인스턴스필드의역할을합니다. 코드패드에서는다소제한된방법으로변수 ( 인스턴스필드와지역변수 ) 들이사용될수있습니다. 코드패드에서는지역변수들을선언할수있지만멀티라인명령문들에서만사용할수있습니다. 왜냐하면분리된입력라인들사이에서변수들은무시되기때문입니다. 예를들면, 다음과같은문장들을멀티라인방식으로입력하고실행결과를예상해봅시다. int sum; sum = 0; for (int i=0; i<100; i++){ sum+=i; } System.out.println("The sum is : " + sum); 24
25 한편, 위의명령어들을개별적인라인입력방식으로코드패드에입력할경우, 실행결과는실패합니다. 왜냐하면, 지역변수 sum은각라인을처리할때마다기억되지않기때문입니다. 사용자가입력한내용들은메소드의보디부분내에있는코드들로간주될수있습니다. 자바프로그램의메소드보디에유효하게작성된모든코드들은코드패드에서도또한유효합니다. 그러나, 사용자가입력한내용이서로다른메소드의일부분인경우어느한입력라인으로부터다른입력라인에선언된변수를참조할수없습니다. 또한, 오브젝트벤치에있는객체들을인스턴스필드로간주할수도있습니다. 사용자들은어떤메소드의보디내 ( 또는코드패드내 ) 에서새로운인스턴스필드들을정의할수없으며, 다만오브젝트벤치에있는객체들의인스턴스필드들을참조하거나, 메시지를보낼수있습니다. 생성된객체에새로운인스턴스필드를추가하기위해서는코드패드로부터해당객체를드레그하여오브젝트벤치에옮겨놓아야합니다 사용자입력이력기능 요약입력이력을사용하기위해서는상하화살표를사용하십시오. 코드패드에서는사용자가이전에입력한내용들에대한이력을저장하고있습니다. 상하화살표를이용하여이전에입력한내용을손쉽게다시입력시킬수있을뿐만아니라, 이전에입력했던내용을수정하여재입력시킬수도있습니다. 25
26 7. 디버깅 이절에서는, BlueJ의디버깅에관한기능들중에서가장중요한측면을소개합니다. 컴퓨터프로그래밍담당선생님들은첫수업에서디버거를사용하는것이매우중요하다고얘기하곤합니다. 그러나정작디버거에대해소개할만한시간은없습니다. 학생들은편집기와컴파일러, 실행을하는것에도힘겨워합니다. 그래서다른복잡한도구를소개할시간이없습니다. 위와같은이유로인해서우리는가능한간단한디버거를만들결심을하였습니다. 선생님이 15분안에설명을할수있고, 학생들은추가적인다른설명없이바로사용할수있도록하는것이우리의목표입니다. 우선, 우리는전통적인디버거의기능들을 3가지로줄였습니다. 중단점 (breakpoints) 설정 단계별코드실행 변수검사위 3가지작업들은아주간단합니다. 지금부터하나씩살펴보도록하겠습니다. 시작하기에앞서, examples 디렉토리안에포함된 debugdemo 프로젝트를오픈하십시오. debugdemo 프로젝트는디버거의기능을시연하기위한목적으로만들어진몇개의클래스들을포함하고있습니다 중단점설정하기 요약 중단점을설정하기위해서는, 에디터에서소스코드의왼쪽부분에위치한중단점영역을마우스의왼쪽버튼으로클릭하면됩니다. 중단점을설정함으로써소스코드의특정지점에서프로그램실행을일시중단시킬수있습니다. 프로그램실행이일시중단되면, 프로그램실행에의해생성되어실행중인객체들의현재상태를조사할수있습니다. 따라서, 프로그램소스코드내에서어떤일이일어나고있는지를이해하는데도움이됩니다. 편집기의소스코드가보여지는곳의왼쪽부분이중단점영역입니다 ( 그림 13). 이영역을마우스왼쪽버튼으로클릭함으로써중단점을설정할수있습니다. 작은 stop 표시가중단점을의미합니다. 바로시도해봅시다. Demo 클래스를오픈하십시오. loop 메소드를찾은후 loop 메소드코드중에서 for 반복문내의임의의라인에중단점을설정하십시오. stop 표시가에디터에나타날것입니다. 26
27 그림 13 : A breakpoint 프로그램실행중중단점에도달하게되면프로그램은일시중단됩니다. 바로시도해봅시다. Demo 클래스에서객체를생성하여매개변수를 10으로하여 loop 메소드를호출하십시오. 실행후중단점에도달하면, 소스코드의현재라인을보여주는에디터윈도우와디버거윈도우가나타납니다 ( 그림 14). 그림 14 : 디버거윈도우 편집기에서반전된부분은다음차례에실행될라인입니다. ( 프로그램의실행은반전된라인의명령문을실행하기바로앞부분에서정지됩니다.) 27
28 7.2. 코드의단계별실행 요약 디버거에있는 Step 버튼과 Step Into 버튼을사용하여코드를단계별로실행시킬수있습니다. 현재실행을일시중지한상태이며 ( 메소드는실제로실행이되었고중단점까지도달했음을확인할수있습니다 ), 우리는한단계씩코드를실행시키면서어떻게실행이진행되는지살펴볼수있습니다. 이와같이하기위해서는디버거윈도우의 Step 버튼을반복해서클릭합니다. 이때소스코드의라인이변화하는것을볼수가있습니다. ( 실행이완료된라인을지나서다음라인이반전됩니다.) Step 버튼을누를때마다코드의한라인이실행되고프로그램의실행이다시멈추게됩니다. 디버거윈도우에나타난변수들의값들 ( 예를들면, sum의값 ) 이변하는것을유념하십시오. 단계별로실행을시키면서일어나는일들을관찰할수있게됩니다. 위와같은단계별실행을중지하고싶을때는중단점을다시클릭해서 stop 표시를제거하면되고, 디버거의 Continue 버튼을클릭하여다시이어서실행을시작할수있습니다. 다른메소드를가지고다시한번시도해보겠습니다. 현재실행하고있는 Demo 클래스의 cartest() 메소드내의아래와같은라인에중단점을설정하십시오. places = mycar.seats(); 메소드를호출하십시오. 위에서설정한중단점에도달했을때실행하려는라인에는 Car 클래스의 seats() 메소드를호출하는명령어를포함하고있습니다. 이때 step 버튼을클릭함으로써해당메소드의모든라인을단번에실행합니다. 이번에는 Step Into 버튼을클릭해봅시다. 임의의메소드호출에대해서 Step Into 기능을사용하면, 해당메소드의구현부분으로들어가서한라인씩명령어를실행합니다. 위의경우, Car 클래스에정의된 seat 메소드가해당됩니다. 한라인씩명령어를실행하여끝에도달하게되면메소드를호출한 cartest 메소드쪽으로돌아가게됩니다. 디버거가변화되는상태를어떻게표시하는지주의해서살펴봐주십시오. 현재라인에메소드호출문이포함되어있지않을경우, Step 버튼과 Step Into 버튼은동일한기능을수행합니다 변수들의검사 요약 디버거윈도우에는변수들의상태가자동으로변경되므로변수들을검사하는것이쉽습니다. 소스코드를디버그할때객체들 ( 지역변수들과인스턴스변수들 ) 의상태를검사하는것은중요합니다. 객체들의상태를검사하는것은대부분계속보아온평범한일입니다. 변수들을검사하기위해서특별한명령들을필요로하지는않습니다. 현재객체의정적변수들과인스턴스변수들과현재메소드의지역변수들은항상자동적으로화면에갱신되어보여집니다. 28
29 일련의함수호출들중에서메소드들을선택하므로써, 현재활성화되어있는다른객체들및메소드들의변수를볼수있습니다. 예를들면, cartest() 메소드에중단점을설정하고다시실행을해보십시오. 디버거윈도우의왼쪽에순차호출을아래와같이볼수있습니다. Car.seats Demo.carTest 이는 Demo.carTest에의해 Car.seats가호출된것을의미합니다. 메소드의현재변수값과소스를검사하는리스트에서 Demo.carTest를선택할수있습니다. 만약 new Car(...) 명령이포함된라인을지나게되면, <object reference> 에서지역변수 mycar의값을확인할수있습니다. 문자열을제외한모든객체형의값들은이와같은방식으로보여지게됩니다. 객체형의값을더블클릭함으로써변수를검사할수있습니다. 이렇게객체검사윈도우를여는것은 4.1절에서말했던내용과동일합니다. 지금객체들을검사하는것과오브젝트벤치의객체들을검사하는것사이에는사실차이가없습니다 중지와종료 요약 중지 (Halt) 와종료 (Terminate) 는실행을일시적으로중지하거나완전종료하는데사용됩니다. 간혹프로그램이오랜시간동안실행하고있으면, 모든것이정상인지의구심이들게됩니다. 아마도무한루프에빠져있거나아니면오랜실행시간을필요로하는프로그램일것입니다. 이런경우에우리는프로그램을점검할수있습니다. Demo 클래스의 longloop() 메소드를실행시켜보십시오. longloop() 메소드는오랫동안실행됩니다. 무엇이어떻게진행되고있는지알고싶어질것입니다. 만약디버거윈도우가화면위에없으면디버거윈도우를오픈하십시오. ( 한편, 프로그램이실행되는동안컴퓨터가작동하고있음을알려주는상태표시바를클릭하므로써간단히디버거를활성화할수있습니다.) Halt 버튼을클릭하세요. Halt 버튼의클릭으로프로그램의실행은중단점을설정한것과같이일시중단됩니다. 몇개의스텝을차례로진행시켜볼수있게되고그러면서변수들을조사해서제대로되어있는지살펴볼수있습니다. 이와같은방법을사용하면프로그램전체를완료시키는데시간이좀필요합니다. Continue 와 Halt 버튼을여러번클릭함으로써얼마나빨리반복되는지알수있습니다. 만약계속진행하기싫으면 ( 예를들면, 무한루프에빠져있는것을발견하는경우 ) Terminate 버튼을눌러서프로그램전체실행을종료시킬수있습니다. 전체실행종료는너무자주사용하면좋지않습니다. 컴퓨터를강제종료시키게되면완벽하게잘쓰여진객체들이비정상적인상태로종료될수있으므로, 긴급상황에서만전체실행종료를사용할것을권장합니다. 29
30 8. 독립형어플리케이션생성 요약독립형어플리케이션을만들기위해서는 Project 메뉴에서 Export... 를사용합니다. BlueJ는실행가능한 jar파일을생성할수있습니다. 실행가능한 jar파일은더블클릭을함으로써 Windows나 MacOS X 등에서실행시킬수있으며, Unix나 DOS프롬프트상에서는다음과같은명령어를사용하여실행시킬수있습니다. java -jar < 파일명 >.jar 예제프로젝트 hello 를살펴봅시다. 먼저예제디렉토리를열어서프로젝트를컴파일하고, Project 메뉴에서 Export... 를선택합니다. 그림 15: Export 대화상자그림 15와같이형식을지정할수있는대화상자가나옵니다. jar file을선택하여실행가능한 jar파일을생성합니다. jar파일이실행가능하도록하기위해서는메인클래스를지정해야합니다. 이클래스에는다음과같이올바르게정의된메인메소드가있어야합니다. public static void main(string[] args) 위의예제에서는단하나의클래스만존재하기때문에메인클래스를선택하는것은간단합니다. 팝업메뉴에서 Hello를선택하십시오. 만약다른프로젝트를실행하고싶다면메인메소드가있는원하는클래스를선택하십시오. 일반적으로실행파일에는소스코드가포함되어있지않지만, 소스코드를배포하고싶다면사용자가포함시킬수있습니다.( 예를들어, 전자우편을통해다른누군가에게한개파일형태로프로젝트내의모든파일을보내려고할경우, jar 형식을사용할수있습니다.) 사용자라이브러리를사용하기위하여 BlueJ 의환경을설정했을경우 (Preferences/Libraries 를설정하거나 lib/userlib 디렉토리를사용 ), 대화상자의중간부분에 Include User libraries 라는영역이나타납니다.( 어떠한라이브러리도사용하지않을경우에는이와같은영역은나타나지않습니다.) 사용자들은반드시현재작성중인프로젝트에서사용하고있는모든라이브러리들을체크해야합니다. 30
31 Continue를클릭하십시오. 새로생성할 jar파일의이름을기입할수있는파일대화상자가나타납니다. hello를입력하고 Create버튼을클릭합니다. 포함될라이브러리를갖고있지않을경우에는, hello.jar 파일이생성될것입니다. 만약, 갖고있을경우에는 hello.jar파일이포함된 hello라는디렉토리가생성될것입니다. 또한, 이와같이만들어진디렉토리에는모든필요한라이브러리들이포함됩니다. 이와같이만들어진 jar파일은같은디렉토리내에서참조하고있는라이브러리들을찾아내고자할것이므로, 다른곳으로이동시킬때에는관련된 jar파일들을함께유지할수있도록주의를기울여야합니다. GUI 인터페이스를사용하는어플리케이션의경우에는 jar파일을더블클릭할수있습니다. 우리가살펴보고있는예제프로그램은텍스트입출력을사용하므로텍스트터미널에서 jar 파일을시작하여야합니다. jar파일을실행해봅시다. 터미널이나 DOS 윈도우를열어 jar파일이저장된디렉토리로이동합니다 (hello.jar파일을볼수있을것입니다 ). 자바가올바르게설치되어있다면다음과같이입력함으로서파일을실행할수있습니다. java -jar hello.jar 31
32 9. 애플릿만들기 9.1. 애플릿실행하기 요약애플릿을실행하기위해애플릿의팝업메뉴에서 Run Applet 을선택하십시오. BuleJ는어플리케이션뿐만아니라애플릿을만들고, 실행할수있습니다. 예제 (examples) 디렉토리안에는애플릿프로젝트가있습니다. 우선애플릿을실행하기위하여, 예제디렉토리에서 appletdemo프로젝트를오픈하십시오. appletdemo프로젝트안에는클래스 (CaseConveter) 가하나존재합니다. CaseConveter 클래스아이콘에는애플릿임을나타내는 <<applet>> 태그가표시되어있습니다. 컴파일을한후에, 클래스팝업메뉴에서 Run Applet명령어를선택하십시오. 그러면몇가지선택을하기위한대화상자가나타납니다 ( 그림 16). 그림 16. Run Applet 대화상자 애플릿을브라우저에서실행시킬지애플릿에서실행시킬지 ( 또는애플릿을실행하지않고웹페이지만을생성시킬지 ) 선택해야합니다. 기타부분은디폴트세팅으로하고, OK 버튼을클릭합니다. 잠시후, 애플릿뷰어가 CaseConverter 애플릿을화면상에보여줍니다. 애플릿뷰어는 JDK와함께설치되어있기때문에여러분이사용하는자바컴파일러와항상같은버전입니다. 따라서, 일반적으로브라우저에서실행하는것보다문제발생률이낮습니다. 여러분이사용하는브라우저의버전에따라서, 웹브라우저가다른버전의자바환경에대응할수도있으므로, 문제점이발생할수있습니다. 그러나, 대부분의브라우저에서는잘작동됩니다. 32
33 마이크로소프트윈도우즈나 MAC OS시스템에서, BlueJ는여러분의기본브라우저를사용합니다. 유닉스시스템의경우는, BlueJ설정파일내에사용할브라우저가정의되어있습니다 애플릿만들기 요약 애플릿을만들기위해서는 New Class버튼을클릭하고, 클래스형으로 Applet을선택하십시오. 애플릿이어떻게실행되는지알아본후, 직접만들어보기바랍니다. 일반클래스처럼애플릿이포함된새로운클래스를만드십시오. New Class대화상자에서타입을선택할수있습니다. 컴파일을하고나서애플릿을실행시킵니다. 다른클래스처럼애플릿은몇가지코드가포함된기본클래스골격으로만들어집니다. 이코드는 2줄의텍스트로이루어진간단한애플릿을보여줍니다. 여러분은이제에디터를열고, 여러분의코드를삽입하여애플릿을편집할수있습니다. 일반적으로애플릿메소드들은각각그목적을설명해놓은주석을가지고있습니다. 샘플코드는모두 paint 메소드안에있습니다 애플릿테스트하기 어떤경우에는오브젝트벤치에서애플릿객체를다른보통의클래스처럼생성하는것은매우유용합니다. 생성자는애플릿의팝업메뉴에서볼수있습니다. 오브젝트벤치에서여러분은애플릿을완벽히실행할수없을것입니다. 그러나몇가지메소드는실행할수있습니다. 이것은여러분의애플릿구현부분에서작성한한개의메소드를테스트하는데사용할수있습니다. 만약여러분이애플릿에중단점을설정했더라도, 애플릿뷰어나웹브라우저에서애플릿을실행시켰을때어떤영향도미치지않을것입니다. 왜냐하면, 애플릿뷰어와웹브라우저는애플릿을실행시키기위한자체가상머신을사용하기때문에, 어떤 BlueJ의중단점도인식하지못합니다. 만약여러분이애플릿내에서중단점과한단계씩실행기능을사용하려면, Michael Trigoboff가만든 AppletWinodw 클래스를이용해야합니다. 이와같은 AppletWindow 클래스는 BlueJ환경하에서애플릿을직접실행시킬수있게해줍니다. 따라서, 애플릿에대한일반적인디버깅작업이가능합니다. AppletWinodw 클래스는 BlueJ 홈페이지에있는 Resources 메뉴에서데모와함께입수할수있습니다. 33
34 10. 기타기능들 BlueJ 로만들지않은패키지오픈하기 요약 BlueJ 로만들지않은패키지들도 Open Non BlueJ... 명령으로오픈할수있습니다. BlueJ는 BlueJ외부에서만들어진패키지들도오픈할수있게해줍니다. 이것을하기위해서는, Project - Open Non BlueJ... 메뉴를선택합니다. 자바소스파일들이포함되어있는디렉토리를선택하고, 메뉴에서 Open in BlueJ 버튼을선택합니다. BlueJ는이디렉토리를열기를원하는지다시한번물어볼것입니다 여러분의프로젝트에기존의클래스들을추가하기 요약 Add Class from File... 메뉴를사용하여외부에있는클래스들을프로젝트에복사할수있습니다. BlueJ 프로젝트를진행하면서 BlueJ프로젝트외부에존재하는클래스를사용하려는경우가있습니다. 예를들면, 선생님이프로젝트에서사용될자바클래스를학생들에게주는경우가있습니다. 여러분은여러분의프로젝트에서 Edit - Add Class from File... 메뉴를선택함으로서받은클래스를쉽게끼워넣을수있습니다. 즉, 이처럼하게되면 import시킬자바소스파일 ( 확장자가.java인파일들 ) 을선택할수있는것입니다. 클래스가프로젝트에 import되면, import된클래스의복사본이만들어져서현재프로젝트디렉토리로옮겨지고저장됩니다. 이와같은방법은, 여러분이직접클래스를만들어서모든소스코드를작성하는것과동일한결과를가져옵니다. 또다른방법으로써, BlueJ 외부로부터프로젝트디렉토리에새로운클래스에해당하는소스파일을추가한후에, 다시프로젝트를오픈하면, 그클래스는클래스다이어그램영역에포함되어표시됩니다. 위의방법은클래스를만들어 import할경우에는소스파일이, 소스파일을만들어추가할경우에는클래스가만들어지는두가지방법모두를사용할수있다는것을말합니다 main 메소드와다른정적메소드들의호출 요약정적인메소드들은클래스의팝업메뉴로부터호출됩니다. example 디렉토리에서 hello 프로젝트를여십시오. 프로젝트에있는클래스는 ( 클래스 Hello) 표준 main 메소드로정의합니다. 34
35 클래스에서마우스오른쪽버튼을클릭하면클래스메뉴에서클래스의생성자뿐만아니라정적 main 메소드가포함된메뉴를볼수있습니다. 이제이메뉴로부터처음에객체를생성하지않고바로정적 main 메소드를호출할수있습니다. 모든정적메소드들은이렇게호출됩니다. 표준 main메소드는매개변수 ( 입력값 ) 로서 String형배열이필요합니다. 배열상수라는조건에적합하게표준자바구문을사용한 String배열을넘겨줄수있습니다. 예를들면, 아래와같이 ( 중괄호포함 ) 메소드에넘겨줄수있습니다. {"one","two","three"} 해보십시오! 노트 : 표준자바에서배열상수들은메소드호출을위한실인자 (arguments) 로서사용될수없습니다. 배열상수들은초기화에만사용될수있습니다. BlueJ 에서는표준 main 메소드의상호호출이가능하도록하기위해매개변수 [ 입력값 ] 로서배열상수의사용을허용합니다 문서생성하기 요약 프로젝트와관련된문서를생성하기위해 Tools메뉴에서 Project Documentation을선택합니다. BlueJ를사용하여표준 javadoc형식으로프로젝트에관련된문서를생성할수있습니다. Tools - Project Documentation메뉴를선택합니다. 이기능은프로젝트에포함되어있는클래스들의소스코드로부터정보를채취하여프로젝트에사용된모든클래스들에대한문서를생성하고, 생성된문서들을보여주기위하여웹브라우저 (web browser) 를오픈합니다. 또한 BlueJ 에디터를이용하여한개의클래스에대한문서를생성하여볼수도있습니다. 에디터를오픈하여에디터의툴바 (toolbar) 에있는팝업메뉴를사용합니다. 팝업메뉴상단우측부분에서 implementation을 Interface로바꿉니다. 이와같이함으로서에디터상에서 javadoc스타일의문서 ( 클래스인터페이스 ) 를볼수있습니다 라이브러리를가지고작업하기 요약 자바표준클래스 API는 Help - Java Standard Libraries를선택하면볼수있습니다. 자바프로그램을작성할때에는, 자주자바표준라이브러리를참조해야합니다. 만약온라인연결상태라면, Help - Java Standard Classes메뉴를선택함으로서 JDK API 문서를웹브라우저에서열수있습니다. JDK 문서는또한오프라인상태에서설치하고사용할수있습니다. 자세한사항은 BlueJ 웹사이트의 help부분에설명되어있습니다. 35
36 10.6. 라이브러리클래스로부터객체생성하기 요약 라이브러리클래스로부터객체를생성하기위해서는, Tools - Use Libraries Class 메뉴를사용하십시오. BlueJ는 JDK에서제공하는라이브러리의클래스들로부터객체를생성하기위한기능을제공합니다. 예를들면여러분은 ArrayList클래스혹은 String클래스의객체를생성할수있습니다. 이와같은방법을이용하면, 라이브러리로부터객체를생성하여실습하는데큰도움이됩니다. Tools - Use Libraries Class메뉴를선택함으로서라이브러리객체를생성할수있습니다. 위의메뉴를선택하면대화상자가팝업됩니다. 팝업된대화상자에는 java.lang.string과같이완벽하게인증된클래스명을입력해야합니다. 즉, 패키지이름까지포함된완벽한클래스이름을입력해야합니다. 팝업메뉴에표시되는텍스트필드값들은최근에사용된클래스들을보여줍니다. 클래스명을입력하고, 엔터버튼을누르십시오. 그러면대화상자에는입력된클래스의모든생성자함수와정적메소드들의리스트가표시됩니다. 리스트에표시된모든생성자함수와정적메소드들은단순히선택함으로써호출할수있습니다. 위와같이호출된생성자함수와정적메소드들은다른생성자함수또는메소드호출보다우선적으로실행됩니다. 36
37 11. 요약정리 시작하기 1. 프로젝트를열기위해 Project 메뉴에서 Open 을선택하십시오. 2. 객체를생성하기위해서는클래스팝업메뉴에서생성자를선택하십시오. 3. 메소드를실행시키기위해서는객체팝업메뉴에서메소드를선택하십시오. 4. 클래스의소스코드를편집하기위해서는클래스아이콘을더블클릭하십시오. 5. 클래스를컴파일하기위해서는에디터에있는 Compile 버튼을클릭하십시오. 프로젝트를컴파일하기위해서는프로젝트윈도우의 Compile 버튼을클릭하십시오. 6. 컴파일러에러메시지에대한도움말이필요하다면, 에러메시지오른쪽에있는물음표를클릭하십시오 추가기능 7. 객체아이콘을클릭함으로서메소드호출에대하여매개변수를통하여객체를전달할수있습니다. 8. 객체상태검사는객체의내부상태를보여줌으로써디버깅을도와줍니다. 새프로젝트만들기 9. 프로젝트를만들기위해서는, Project 메뉴에서 New Project 를선택합니다. 10. 클래스를만들기위해서는, New Class 버튼을클릭하고클래스이름을지정합니다. 11. 화살표를만들기위해서는, 화살표버튼을클릭하고다이어그램에서화살표를드래그하거나에디터를이용하여소스코드를작성합니다. 12. 클래스또는화살표를삭제하려면, 팝업메뉴에서삭제기능을선택합니다. 코드패드사용하기 13. 코드패드를사용하기위해보기메뉴에서코드패드보기 (Show Code Pad) 를선택하십시오. 14. 코드패드에자바표현식을간단히입력함으로써평가할수있습니다. 15. 코드패드로부터객체를오브젝트벤치로이동하기위해서는객체아이콘을드래그하십시오. 16. 코드패드에서생성된객체를검사하기위해서는객체아이콘을더블클릭하십시오. 17. 코드패드에명령문들을입력하여실행시킬수있습니다. 18. 멀티라인명령문을입력하기위해서는해당라인의끝부분에서 Shift-Enter를사용하십시오. 19. ( 멀티라인 ) 명령문들에는지역변수가사용될수있습니다. 오브젝트벤치에있는객체들에이름은인스턴스필드의역할을합니다. 20. 입력이력을사용하기위해서는상하화살표를사용하십시오. 37
38 디버깅 21. 중단점 (breakpoint) 을설정하기위해서는, 편집기에서소스코드의왼쪽부분에위치한중단점 (breakpoint) 영역을마우스의왼쪽버튼으로클릭하면됩니다. 22. 디버거에있는 Step 버튼과 Step Into 버튼을사용하여코드를단계별로실행시킬수있습니다. 23. 디버거윈도우에는변수들의상태가자동으로변경되므로변수들을검사하는것이쉽습니다. 24. 중지 (Halt) 와종료 (Terminate) 는실행을일시적으로중지하거나완전종료하는데사용됩니다. 독립형어플리케이션생성 25. 독립형어플리케이션을만들기위해서는 Project 메뉴에서 Export... 를사용합니다. 애플릿만들기 26. 애플릿을실행하기위해애플릿의팝업메뉴에서 Run Applet 을선택합니다 27. 애플릿을만들기위해서는 New Class 버튼을클릭하고, 클래스형으로 Applet 을선택하십시오. 기타기능들 28. BlueJ 로만들지않은패키지오픈하기 : BlueJ 로만들지않은패키지들도 Open Non BlueJ... 명령으로프로젝트에서오픈할수있습니다. 29. Add Class from File... 메뉴를사용하여외부에있는클래스들을프로젝트에복사할수있습니다. 30. 정적인메소드들은클래스의팝업메뉴로부터호출됩니다. 31. 프로젝트와관련된문서를생성하기위해 Tools 메뉴에서 Project Documentation 를선택합니다. 32. 자바표준클래스 API 는 Help - Java Standard Libraries 를선택하면볼수있습니다. 33. 라이브러리클래스로부터객체를생성하기위해서는, Tools - Use Libraries Class 메뉴를사용하십시오. 38
39 12. 번역을마치며 Thanks God. It's a BlueJ. - 황석형 : shwang@sunmoon.ac.kr 39
BlueJ-Tutorial(korean ver1.0).hwp
BlueJ 튜토리얼 한국어버전 1.0 BlueJ Version 1.2.x 用 English Version 1.4 Michael Köling Mærsk Insitute University of Southern Denmark Korean Version 1.0 황석형교수 Project Member ( 강석진, 민상호, 오경묵, 유형순, 이승환 ) 선문대학교컴퓨터정보학부
More informationJAVA PROGRAMMING 실습 08.다형성
2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스
More informationMicrosoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
More informationPowerPoint Presentation
Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음
More information1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과
1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas
More informationJAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각
JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.
More informationStuduino소프트웨어 설치
Studuino 프로그래밍환경 Studuino 소프트웨어설치 본자료는 Studuino 프로그래밍환경설치안내서입니다. Studuino 프로그래밍 환경의갱신에따라추가 / 수정될수있습니다. 목차 1. 소개... 1 2. Windows... 2 2.1. 프로그래밍환경설치... 2 2.1.1. 웹설치버전설치방법... 2 2.2. Studuino 프로그래밍환경실행...
More informationMicrosoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx
To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse
More informationView Licenses and Services (customer)
빠른 빠른 시작: 시작: 라이선스, 라이선스, 서비스 서비스 및 주문 주문 이력 이력 보기 보기 고객 가이드 Microsoft 비즈니스 센터의 라이선스, 서비스 및 혜택 섹션을 통해 라이선스, 온라인 서비스, 구매 기록 (주문 기록)을 볼 수 있습니다. 시작하려면, 비즈니스 센터에 로그인하여 상단 메뉴에서 재고를 선택한 후 내 재고 관리를 선택하십시오. 목차
More informationgnu-lee-oop-kor-lec06-3-chap7
어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base
More information쉽게 풀어쓴 C 프로그래밍
Power Java 제 20 장패키지 이번장에서학습할내용 패키지의개념 패키지로묶는방법 패키지사용 기본패키지 유틸리티패키지 패키지는연관된클래스들을묶는기법입니다. 패키지란? 패키지 (package) : 클래스들을묶은것 자바라이브러리도패키지로구성 ( 예 ) java.net 패키지 네트워크관련라이브러리 그림 20-1. 패키지의개념 예제 패키지생성하기 Q: 만약패키지문을사용하지않은경우에는어떻게되는가?
More informationPowerPoint Presentation
public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +
More informationMicrosoft Word - ntasFrameBuilderInstallGuide2.5.doc
NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,
More informationPowerPoint Presentation
객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean
More informationJVM 메모리구조
조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.
More informationPowerPoint 프레젠테이션
인터페이스 배효철 th1g@nate.com 1 목차 인터페이스의역할 인터페이스선언 인터페이스구현 인터페이스사용 타입변환과다형성 인터페이스상속 디폴트메소드와인터페이스확장 2 인터페이스의역할 인터페이스란? 개발코드와객체가서로통신하는접점 개발코드는인터페이스의메소드만알고있으면 OK 인터페이스의역할 개발코드가객체에종속되지않게 -> 객체교체할수있도록하는역할 개발코드변경없이리턴값또는실행내용이다양해질수있음
More informationq 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2
객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가
More informationISP and CodeVisionAVR C Compiler.hwp
USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler
More information쉽게
Power Java 제 4 장자바프로그래밍기초 이번장에서학습할내용 자바프로그램에대한기초사항을학습 자세한내용들은추후에. Hello.java 프로그램 주석 주석 (comment): 프로그램에대한설명을적어넣은것 3 가지타입의주석 클래스 클래스 (class): 객체를만드는설계도 ( 추후에학습 ) 자바프로그램은클래스들로구성된다. 그림 4-1. 자바프로그램의구조 클래스정의
More informationPowerPoint Template
16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //
More informationMicrosoft PowerPoint - chap01-C언어개요.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을
More informationJAVA PROGRAMMING 실습 05. 객체의 활용
public class Person{ public String name; public int age; } public Person(){ } public Person(String s, int a){ name = s; age = a; } public String getname(){ return name; } @ 객체의선언 public static void main(string
More informationMicrosoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx
To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 개발환경구조및설치순서 JDK 설치 Eclipse 설치 안드로이드 SDK 설치 ADT(Androd Development Tools) 설치 AVD(Android Virtual Device) 생성 Hello Android! 2 Eclipse (IDE) JDK Android SDK with
More information쉽게 풀어쓴 C 프로그래밍
Power Java 제 7 장클래스와객체 이번장에서학습할내용 객체지향이란? 객체 메시지 클래스 객체지향의장점 String 클래스 객체지향개념을완벽하게이해해야만객체지향설계의이점을활용할수있다. 실제세계는객체로이루어진다. 객체지향이란? 실제세계를모델링하여소프트웨어를개발하는방법 절차지향과객체지향 절차지향프로그래밍 (procedural programming): 문제를해결하는절차를중요하게생각하는방법
More informationPowerPoint Presentation
Package Class 1 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section
More informationiii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.
Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:
More informationMicrosoft Word - Armjtag_문서1.doc
ARM JTAG (wiggler 호환 ) 사용방법 ( IAR EWARM 에서 ARM-JTAG 로 Debugging 하기 ) Test Board : AT91SAM7S256 IAR EWARM : Kickstart for ARM ARM-JTAG : ver 1.0 ( 씨링크테크 ) 1. IAR EWARM (Kickstart for ARM) 설치 2. Macraigor
More information오버라이딩 (Overriding)
WindowEvent WindowEvent 윈도우가열리거나 (opened) 닫힐때 (closed) 활성화되거나 (activated) 비활성화될때 (deactivated) 최소화되거나 (iconified) 복귀될때 (deiconified) 윈도우닫힘버튼을누를때 (closing) WindowEvent 수신자 abstract class WindowListener
More informationPathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.
PathEye Mobile Ver. 0.71b 2009. 3. 17 By PathEye 공식 블로그 다운로드 받으세요!! http://blog.patheye.com 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye 설치 1/3 최종 배포 버전을 다 운로드 받습니다. 다운로드된 파일은 CAB 파일입니다. CAB 파일에는
More information다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");
다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More informationInstall stm32cubemx and st-link utility
STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7
More information<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>
쉽게풀어쓴 C 언어 Express 제 2 장프로그램개발과정 통합개발환경 통합개발환경 (IDE: integrated development environment) 에디터 + 컴파일러 + 디버거 Visual C++: 이클립스 (eclipse): Dev-C++: 마이크로소프트제작 오픈소스프로젝트 오픈소스프로젝트 통합개발환경의종류 비주얼 C++(Visual C++)
More information<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>
Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.
More information[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi
2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,
More information소프트웨어공학 Tutorial #2: StarUML Eun Man Choi
소프트웨어공학 Tutorial #2: StarUML Eun Man Choi emchoi@dgu.ac.kr Contents l StarUML 개요 l StarUML 소개및특징 l 주요기능 l StarUML 화면소개 l StarUML 설치 l StarUML 다운 & 설치하기 l 연습 l 사용사례다이어그램그리기 l 클래스다이어그램그리기 l 순서다이어그램그리기 2
More informationMicrosoft PowerPoint - C++ 5 .pptx
C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성
More information목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault
사용자매뉴얼 JetFlash Vault 100 ( 버전 1.0) 1 목차 1. 시스템요구사항... 3 2. 암호및힌트설정 ( 윈도우 )... 3 3. JetFlash Vault 시작하기 ( 윈도우 )... 7 4. JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault 찾아보기... 10 JetFlash
More information제11장 프로세스와 쓰레드
제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드
More information슬라이드 1
UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)
More informationPowerPoint Presentation
Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section
More information목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.
소프트웨어매뉴얼 윈도우드라이버 Rev. 3.03 SLP-TX220 / TX223 SLP-TX420 / TX423 SLP-TX400 / TX403 SLP-DX220 / DX223 SLP-DX420 / DX423 SLP-DL410 / DL413 SLP-T400 / T403 SLP-T400R / T403R SLP-D220 / D223 SLP-D420 / D423
More informationMicrosoft PowerPoint - Chapter 6.ppt
6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; // 컴파일오류 3 C 의 const (1)
More information17장 클래스와 메소드
17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는
More information아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상
Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는
More informationPowerPoint Presentation
public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +
More information<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>
연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 2 장 : C 프로그램시작하기 2012 년 이은주 학습목표 을작성하면서 C 프로그램의구성요소 주석 (comment) 이란무엇인지알아보고, 주석을만드는방법 함수란무엇인지알아보고, C 프로그램에반드시필요한 main 함수 C 프로그램에서출력에사용되는 printf 함수 변수의개념과변수의값을입력받는데사용되는 scanf 함수 2 목차 프로그램코드
More informationPowerPoint 프레젠테이션
실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3
More informationWindows 8에서 BioStar 1 설치하기
/ 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar
More information리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.
3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2. 3Rabbitz Book 애플리케이션파일다운로드하여압축파일을풀고복사합니다. 3. 3Rabbitz Book 실행합니다.
More informationSBR-100S User Manual
( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S
More information10.0pt1height.7depth.3width±â10.0pt1height.7depth.3widthÃÊ10.0pt1height.7depth.3widthÅë10.0pt1height.7depth.3width°è10.0pt1height.7depth.3widthÇÁ10.0pt1height.7depth.3width·Î10.0pt1height.7depth.3width±×10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width¹Ö pt1height.7depth.3widthŬ10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width½º, 10.0pt1height.7depth.3width°´10.0pt1height.7depth.3widthü, 10.0pt1height.7depth.3widthº¯10.0pt1height.7depth.3width¼ö, 10.0pt1height.7depth.3width¸Þ10.0pt1height.7depth.3width¼Ò10.0pt1height.7depth.3widthµå
기초통계프로그래밍 클래스, 객체, 변수, 메소드 hmkang@hallym.ac.kr 금융정보통계학과 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 1 / 26 자바구성파일 소스파일 소스파일 : 사용자가직접에디터에입력하는파일로자바프로그램언어가제공하는형식으로제작 소스파일의확장자는.java 임 컴파일 : javac 명령어를이용하여프로그래머가만든소스파일을컴파일하여실행파일.class
More informationPowerPoint Presentation
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을작성하면서 C 프로그램의구성요소에대하여알아본다.
More informationMicrosoft PowerPoint - CSharp-10-예외처리
10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.
More informationOffice 365 사용자 가이드
[ 여기에입력 ] Office 365 사용자가이드 OFFICE 365 모바일설정 목차 1. 모바일에메일계정추가하기... 2 2. Lync 2013 App 설치하기... 7 3. Office Mobile App 설치하기... 10 4. Office for ipad 설치하기... 16-1 - 모바일기기에 Office 365 를설정해보세요. 모바일기기에 Office
More informationPowerPoint Template
JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것
More informationJDK이클립스
JDK 와이클립스설치 A. JDK 다운로드, 설치및환경설정 지금부터 JDK를다운로드받아설치하고 JDK를윈도우에서활용할수있도록환경을설정하는전과정을소개한다. 다운로드 www.oracle.com 사이트에접속하여 Downloads 메뉴를선택한후 [ 그림 1] 과같이 "Java for Developers" 를클릭한다. [ 그림 1] www.oracle.com 사이트
More informationMicrosoft Word - src.doc
IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...
More informationAPI - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어
메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어서가장중요한부분이라고도할수있기때문입니다. 1. 새로운메크로생성 새메크로만들기버튺을클릭하여파일을생성합니다. 2. 메크로저장 -
More information슬라이드 1
IntelliJ IDEA 1. 도구개요 2. 설치및실행 3. 주요기능 1. 도구개요 도구명 IntelliJ IDEA (http://www.jetbrains.com/idea/) 라이선스 Apache 2 소개 Java 용통합개발도구 요구사항을정의하고전체개발과정에서요구사항을추적할수있도록지원. 특징 Java IDE 환경제공 모바일및엔터프라이저개발을위한프레임워크제공
More informationJAVA 플랫폼 개발 환경 구축 및 활용
페이지 1 / 9 작성일 : 2011/7/30 JDK Download Eclipse IDE 구축및홗용 For Java JDK Download JDK Setting the Path Eclipse Download Eclipse Font Setting Eclipse API Setting > 1. http://www.oracle.com/index.html
More informationDesign Issues
11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance
More information<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>
리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1
More informationMicrosoft Word - windows server 2003 수동설치_non pro support_.doc
Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로
More information< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10
(https://www.kisarbl.or.kr) < 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 Ⅰ. 개요 실시간스팸차단리스트 (RBL) 는메일서버를운영하는누구나손쉽게효과적으로스팸수신을차단하는데이용할수있도록한국인터넷진흥원 (KISA)
More informationMicrosoft PowerPoint - 2강
컴퓨터과학과 김희천교수 학습개요 Java 언어문법의기본사항, 자료형, 변수와상수선언및사용법, 각종연산자사용법, if/switch 등과같은제어문사용법등에대해설명한다. 또한 C++ 언어와선언 / 사용방법이다른 Java의배열선언및사용법에대해서설명한다. Java 언어의효과적인활용을위해서는기본문법을이해하는것이중요하다. 객체지향의기본개념에대해알아보고 Java에서어떻게객체지향적요소를적용하고있는지살펴본다.
More informationMicrosoft PowerPoint - chap-02.pptx
쉽게풀어쓴 C 언어 Express 제 2 장프로그램개발과정 컴퓨터프로그래밍기초 프로그램작성과정 에디터 (editer) 컴파일러 (compiler) 링커 (linker) 로더 (loader) 소스파일 test.c 오브젝트파일 test.obj 실행파일 test.exe 통합개발환경 (IDE) 컴퓨터프로그래밍기초 2 프로그램작성단계 편집 (edit) 에디터를이용하여원하는작업의내용을기술하여소스코드작성
More informationC++ Programming
C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout
More information6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO
Windows 7 설치및 PCIE RAID 설정정보 DK173 초판 11월 2016 A. Windows 7 및 USB 드라이버설치 칩셋사양에따라 Windows 7 설치중에 USB 키보드 / 마우스를사용하려면시스템에서 USB 드라이버를사전로드해야합니다. 이절에서는 USB 드라이버사전로드방법과 Windows 7 설치방법에대해서설명합니다. 방법 1: SATA ODD
More informationJAVA PROGRAMMING 실습 09. 예외처리
2015 학년도 2 학기 예외? 프로그램실행중에발생하는예기치않은사건 예외가발생하는경우 정수를 0으로나누는경우 배열의크기보다큰인덱스로배열의원소를접근하는경우 파일의마지막부분에서데이터를읽으려고하는경우 예외처리 프로그램에문제를발생시키지않고프로그램을실행할수있게적절한조치를취하는것 자바는예외처리기를이용하여예외처리를할수있는기법제공 자바는예외를객체로취급!! 나뉨수를입력하시오
More informationvar answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");
자바스크립트 (JavaScript) - HTML 은사용자에게인터페이스 (interface) 를제공하는언어 - 자바스크립트는서버로데이터를전송하지않고서할수있는데이터처리를수행한다. - 자바스크립트는 HTML 나 JSP 에서작성할수있고 ( 내부스크립트 ), 별도의파일로도작성이가능하다 ( 외 부스크립트 ). - 내부스크립트 - 외부스크립트
More informationMicrosoft Word - codevision사용법_pdf버전.docx
CodevisionAVR 설치와 기본사용법 민경학 ( hak@anycalluser.net) 인하대학교 IT 공과대학전자공학과멀티미디어연구실 ( 하이테크센터 916 호 ) 2008.9.7.001 들어가며 AVR 에서쓸수있는컴파일러종류에는 CodeVisionAVR, AVR Edit, IAR, AVRStudio 등이있습니다. CodeVisionAVR 과 IAR 은상용이고
More informationNo Slide Title
클래스와객체 이충기 명지대학교컴퓨터공학과 들어가며 Q: 축구게임에서먼저공격하는팀을정하기위해동전을던진다. 우리는동전을던질때앞면이나오느냐아니면뒷면이나오느냐에만관심이있다. 또한동전을가지고해야할일은동전을던지는것과동전을던진후결과를알면된다. 이동전을효과적으로나타낼수있는방법을기술하라. A: 2 클래스와객체 객체 (object): 우리주변의어떤대상의모델이다. - 예 : 학생,
More informationPowerPoint 프레젠테이션
Lab 4 ADT Design 클래스로정의됨. 모든객체들은힙영역에할당됨. 캡슐화 (Encapsulation) : Data representation + Operation 정보은닉 (Information Hiding) : Opertion부분은가려져있고, 사용자가 operation으로만사용가능해야함. 클래스정의의형태 public class Person { private
More informationIRISCard Anywhere 5
이 빠른 사용자 가이드는 IRISCard Anywhere 5 및 IRISCard Corporate 5 스캐너의 설치와 시작을 도와 드립니다. 이 스캐너와 함께 제공되는 소프트웨어는: - Cardiris Pro 5 및 Cardiris Corporate 5 for CRM (Windows 용) - Cardiris Pro 4 (Mac OS 용) Cardiris 의
More information슬라이드 1
Subclipse 1. 도구개요 2. 설치및실행 3. 주요기능 4. 활용예제 1. 도구개요 도구명 Subclipse (http://subclipse.tigris.org/) 라이선스 Eclipse Public License v1.0 소개 Subversion( 이하 svn) 용 Eclipse 플러그인 SVN 을만든 Tigris.org 에서만든클라이언트툴 Java
More informationNo Slide Title
상속 이충기 명지대학교컴퓨터공학과 상속 Q: 건설회사는기존아파트와조금다르거나추가적인특징들을가진새아파트를지을때어떻게하는가? A: 2 상속 상속 (inheritance) 은클래스들을연관시키는자연스럽고계층적인방법이다. 상속은객체지향프로그래밍의가장중요한개념중의하나이다. 상속은 은 이다 라는관계 (is-a relationship) 를나타낸다. 이관계를적용하여클래스들을상하관계로연결하는것이상속이다.
More informationMicrosoft PowerPoint - additional06.ppt [호환 모드]
보조자료 6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park 복습 : Const 키워드왜사용? C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; //
More information슬라이드 1
Tadpole for DB 1. 도구개요 2. 설치및실행 4. 활용예제 1. 도구개요 도구명 소개 Tadpole for DB Tools (sites.google.com/site/tadpolefordb/) 웹기반의데이터베이스를관리하는도구 Database 스키마및데이터관리 라이선스 LGPL (Lesser General Public License) 특징 주요기능
More information쉽게 풀어쓴 C 프로그래밍
Power Java 제 9 장생성자와접근제어 이번장에서학습할내용 생성자 정적변수 정적메소드 접근제어 this 클래스간의관계 객체가생성될때초기화를담당하는생성자에대하여살펴봅니다. 생성자 생성자 (contructor): 객체가생성될때에필드에게초기값을제공하고필요한초기화절차를실행하는메소드 생성자의예 class Car { private String color; // 색상
More informationC 프로그램의 기본
C 프로그램의기본 목차 C 프로그램의구성요소 주석 main 함수 출력 C 언어의입력과출력 변수 printf 함수 scanf 함수 2 예제 2-1 : 첫번째 C 프로그램 3 2.1.1 주석 주석의용도 프로그램에대한설명 프로그램전체에대한대략적인정보를제공 프로그램수행에영향을미치지않는요소 4 2.1.1 주석 주석사용방법 /* 과 */ 을이용한여러줄주석 // 을이용한한줄주석
More information혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가
혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가웹페이지내에뒤섞여있어서웹페이지의화면설계가점점어려워진다. - 서블릿이먼저등장하였으나, 자바내에
More information<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>
Power Java 제 26 장애플릿 이번장에서학습할내용 애플릿소개 애플릿작성및소개 애플릿의생명주기 애플릿에서의그래픽컴포넌트의소개 Applet API의이용 웹브라우저상에서실행되는작은프로그램인애플릿에대하여학습합니다. 애플릿이란? 애플릿은웹페이지같은 HTML 문서안에내장되어실행되는자바프로그램이다. 애플릿을실행시키는두가지방법 1. 웹브라우저를이용하는방법 2. Appletviewer를이용하는방법
More informationEndpoint Protector - Active Directory Deployment Guide
Version 1.0.0.1 Active Directory 배포가이드 I Endpoint Protector Active Directory Deployment Guide 목차 1. 소개...1 2. WMI 필터생성... 2 3. EPP 배포 GPO 생성... 9 4. 각각의 GPO 에해당하는 WMI 연결... 12 5.OU 에 GPO 연결... 14 6. 중요공지사항
More informationMicrosoft Word - 3부A windows 환경 IVF + visual studio.doc
Visual Studio 2005 + Intel Visual Fortran 9.1 install Intel Visual Fortran 9.1 intel Visual Fortran Compiler 9.1 만설치해서 DOS 모드에서실행할수있지만, Visual Studio 2005 의 IDE 를사용하기위해서는 Visual Studio 2005 를먼저설치후 Integration
More informationNetwork Programming
Part 5 확장된 Network Programming 기술 1. Remote Procedure Call 2. Remote Method Invocation 3. Object Request Broker 2. Java RMI
More information슬라이드 1
CCS v4 사용자안내서 CCSv4 사용자용예제따라하기안내 0. CCS v4.x 사용자 - 준비사항 예제에사용된 CCS 버전은 V4..3 버전이며, CCS 버전에따라메뉴화면이조금다를수있습니다. 예제실습전준비하기 처음시작하기예제모음집 CD 를 PC 의 CD-ROM 드라이브에삽입합니다. 아래안내에따라, 예제소스와헤더파일들을 PC 에설치합니다. CD 드라이브 \SW\TIDCS\TIDCS_DSP80x.exe
More informationUnitTesting(ÇѱÛÆÇ).hwp
BlueJ에서의단위테스트 Unit Testing in BlueJ Version 1.0 for BlueJ Version 1.3.0 한국어버전 1.0 BlueJ Version 1.3.0 用 Michael Kölling Mærsk Insitute University of Southern Denmark 번역 : 황석형선문대학교컴퓨터정보학부 Copyright C M.
More information4S 1차년도 평가 발표자료
모바일 S/W 프로그래밍 안드로이드개발환경설치 2012.09.05. 오병우 모바일공학과 JDK (Java Development Kit) SE (Standard Edition) 설치순서 Eclipse ADT (Android Development Tool) Plug-in Android SDK (Software Development Kit) SDK Components
More information. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요
. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요소로써안드로이드시스템에서는 Activities, Services, Content Providers,
More information슬라이드 1
전자정부개발프레임워크 1 일차실습 LAB 개발환경 - 1 - 실습목차 LAB 1-1 프로젝트생성실습 LAB 1-2 Code Generation 실습 LAB 1-3 DBIO 실습 ( 별첨 ) LAB 1-4 공통컴포넌트생성및조립도구실습 LAB 1-5 템플릿프로젝트생성실습 - 2 - LAB 1-1 프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new
More informationtiawPlot ac 사용방법
tiawplot ac 매뉴얼 BORISOFT www.borisoft.co.kr park.ji@borisoft.co.kr HP : 00-370-077 Chapter 프로그램설치. 프로그램설치 3 2 Chapter tiawplot ac 사용하기.tiawPlot ac 소개 2.tiawPlot ac 실행하기 3. 도면파일등록및삭제 4. 출력장치설정 5. 출력옵션설정
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More information쉽게 풀어쓴 C 프로그래밍
Power Java 제 11 장상속 이번장에서학습할내용 상속이란? 상속의사용 메소드재정의 접근지정자 상속과생성자 Object 클래스 종단클래스 상속을코드를재사용하기위한중요한기법입니다. 상속이란? 상속의개념은현실세계에도존재한다. 상속의장점 상속의장점 상속을통하여기존클래스의필드와메소드를재사용 기존클래스의일부변경도가능 상속을이용하게되면복잡한 GUI 프로그램을순식간에작성
More informationvRealize Automation용 VMware Remote Console - VMware
vrealize Automation 용 VMware Remote Console VMware Remote Console 9.0 이문서는새버전으로교체되기전까지나열된각제품버전및모든이후버전을지원합니다. 이문서에대한최신버전을확인하려면 http://www.vmware.com/kr/support/pubs 를참조하십시오. KO-002230-00 vrealize Automation
More information예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A
제 10 장상속 예제 1) ConstructorTest.java class Parent public Parent() super - default"); public Parent(int i) this("hello"); super(int) constructor" + i); public Parent(char c) this(); super(char) constructor
More informationJUNIT 실습및발표
JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected
More information슬라이드 1
Delino EVM 용처음시작하기 - 프로젝트만들기 (85) Delfino EVM 처음시작하기앞서 이예제는타겟보드와개발홖경이반드시갖추어져있어야실습이가능합니다. 타겟보드 : Delfino EVM + TMS0F85 초소형모듈 개발소프트웨어 : Code Composer Studio 4 ( 이자료에서사용된버전은 v4..입니다. ) 하드웨어장비 : TI 정식 JTAG
More information