Microsoft PowerPoint - hci2-lecture7.ppt [호환 모드]

Size: px
Start display at page:

Download "Microsoft PowerPoint - hci2-lecture7.ppt [호환 모드]"

Transcription

1 Overview 고급 C# 프로그래밍 년가을학기 10/12/2009 박경신 속성 (Property), 인덱서 (Indexer) 대리자 (Delegate), 이벤트 (Event) 무명메소드 (Anonymous Method) 특성 (Attribute) 제네릭 (Generic) 컬렉션 (Collections) 파일입출력 (File I/O) 어셈블리 (Assembly) Property 속성이란클래스의속성을함수적동작에의하여표현하는구성요소 필드처럼보이지만실제로는메소드처럼동작 get, set 접근자에의하여표현 클래스의내부구조를추상적으로표현하여보호 내부적으로메모리가배정되지않음 메소드처럼동작하므로 virtual, static, abstract, override 키워드사용가능 Property 속성설명 name : private로설정된 Car 클래스의멤버필드 Name : public으로설정된 Car 클래스의속성 (Property) get : read 기능을수행하는메소드 set : write기능을수행하는메소드 value : set 접근자에게전달되는인자값 public class Car { private string name; public string Name { get { return name; set { name = value;

2 Property 속성종류 Read-Write 속성 : get, set 접근자모두를사용하며 property의가장일반적인모습 Read-only 속성 :get 접근자만프로퍼티에존재하며읽을수만있는읽기전용속성 Write-only 속성 : set 접근자만사용하며멤버필드에값을쓰기만할수있는속성 Static 속성 : 클래스레벨에존재하는속성으로, 개체를만들지않고도사용이가능하며,this 키워드사용이불가능 Property public class Car { private string name; public string Name { get { return name; set { name = value; public class PropertyTest { public static void Main(string[] args) { Car c = new Car(); // set연산자호출 c.name = 아반테 "; // get 연산자호출 Console.WriteLine(c.Name); Indexer 인덱서 (indexer) 란내부적으로객체를배열처럼사용할수있게해주는일종의연산자 속성과마찬가지로모습은필드이지만실제로는메소드로작동 인덱서특징 필드처럼보이지만실제로는메소드처럼동작 get, set 접근자에의하여표현 this 키워드를반드시사용 배열에접근하는것처럼 [] 기호를사용 Indexer public class FavoriteIndexer { private Hashtable myfavorite = new Hashtable(); public string this[string kind] { get { return (string)myfavorite[kind]; set { myfavorite[kind] = value; public class IndexerTest { public static void Main(string [] args) { FavoriteIndexer in = new FavoriteIndexer (); // string indexer 의 set 연산자호출 in["fruit"] = "apple"; in["color"] = "blue"; // string indexer 의 get 연산자호출 System.Console.WriteLine(in["fruit"]); // apple System.Console.WriteLine(in["color"]); // blue

3 Delegate & Event 대리자 (Delegate) Delegate 생성 Delegate +/- Operator 이벤트 (Event) Events 동작원리 Event 구성요소 이벤트핸들러대리자 (Delegate) 이벤트를발생시키는객체 (Publisher) 이벤트에응답하는객체 (Subscriber) 이벤트매개변수 (Event Argument) 9 Delegate 대리자특징 메소드를간접호출할때사용되는 method pointer 대리자의구조는함수의포인터 ( 주소 ) 를저장하는구조 저장되는함수의원형과대리자함수의원형은반드시같아야함 ( 매개변수리스트와반환값이동일 ) 객체지향의속성중에다형성과비슷한작업을수행 프로그램의실행시에생성 Method1(int x) DoWork() { { MethodX(100); MethodX delegate... Method2(int y) { caller contract... Implementer Delegate Delegate 정의, 생성및사용 delegate 키워드를사용하여정의 new 키워드를통하여생성 Delegate 호출로메소드간접호출 // 대리자정의 public delegate void DelegateMethod(int x); // 대리자가지칭할메소드구현 public static void CallbackMethod(int x) ){ Console.WriteLine(x); (); // 대리자생성및초기화 DelegateMethod dm = new DelegateMethod(CallbackMethod); // 또는 DelegateMethod dm = CallbackMethod; 간접호출될메소드... // 대리자를이용한메소드간접호출 dm(100); // CallbackMethod(100) 호출 11 Delegate public class Click { public void MouseClick(string what) { System.Console.WriteLine(" 마우스의 {0 버튼이클릭됐습니다.",what); public void KeyBoardClick(string i what) { System.Console.WriteLine(" 키보드의 {0 버튼이클릭됐습니다.",what); public delegate void OnClick(string what); // 대리자정의 public class DelegateTest { public static void Main(string[] args) { Click c = new Click(); OnClick dm = new OnClick(c.MouseClick); dm(" 왼쪽 "); // c.mouseclick( MouseClick( 왼쪽 ) 호출 dm = new OnClick(c.KeyBoardClick); dm(" 스페이스 "); // c.keyboardclick( 스페이스 ) 호출

4 Delegate 사용예 using System; class NumClass { public int number; public NumClass() { this.number =0; public void Plus(int value) { this.number += value; public void Minus(int value) { this.number -= value; public static void PrintHello(int value) { for(int i=0;i<value;i++) Console.WriteLine("Hello"); // Callback할메소드형식으로대리자선언 public delegate void Handler(int value); class DelegateTest { NumClass c = new NumClass(); // 인스턴스메소드위임 Handler h = new Handler(c.Plus); // c.plus 대리자생성 h(10); // 대리자로 c.plus(10) 호출 => 10 Console.WriteLine( h(10)={0",c.number); // h(10)=10 c.plus(20); // 30 Console.WriteLine("c.Plus(20)={0",c.number); //c.plus(20)=30 h = new Handler(c.Minus); // c.minus 대리자생성 h(10); // 대리자로 c.minus(10) 호출 => 20 Console.WriteLine( h(10)={0",c.number); // h(10)=20 c.minus(20); // 0 Console.WriteLine( WriteLine("cMinus(20) c.minus(20)={0 {0",c.number); //cminus(20) //c.minus(20)=00 // 정적메소드위임 h = new Handler(NumClass.PrintHello); // 대리자생성 h(3); // 대리자로 NumClass.PrintHello(3) 호출 Hello 3 번출력 13 Multiple Delegate Delegate Operator Combine (+) : 대리자를결합하는연산자 Remove (-) : 대리자를제거하는연산자 NumClass c = new NumClass(); Handler d = new Handler(c.Plus) + new Handler(c.Minus); // 대리자 Combine //d = (Handler) Delegate.Combine(new Handler(c.Plus), new Handler(c.Minus)); d(10); // c.plus(10) 와 c.minus(10) 를함께호출 Console.WriteLine("c.number={0",c.number); // c.number=0 d = d -new Handler(c.Minus); // 대리자 Remove //d = (Handler) Delegate.Remove(d, new Handler(c.Minus)); d(10); // c.plus(10) 만호출 Console.WriteLine("c.number={0",c.number); b // c.number=10 d += new Handler(NumClass.PrintHello); d(5); // c.plus(5) 와 NumClass.PrintHello(5) 를함께호출 Console.WriteLine("c.number={0",c.number); i b // c.number=15 14 Multiple Delegate delegate void StringHandler(string s); class DelegateTest { public static void Hello(string s) { Console.WriteLine("Hello {0!", s); public static void Bye(string s) { Console.WriteLine( Bye Bye {0!", s); StringHandler x, y, z, w; // Hello 메소드를참조하는 x delegate 객체생성 x = new StringHandler(Hello); // Bye 메소드를참조하는 y delegate 객체생성 y = new StringHandler(Bye); // delegate x, y를결합하여 z delegate에대입 z = x + y; // 결합된 delegate z에서 x를제거한 w delegate w=z - x; 15 Console.WriteLine( 대리자 x 호출 "); x( X"); // Hello X! Console.WriteLine( 대리자 y 호출 "); y( Y"); // Bye Bye Y! Console.WriteLine( 대리자 z 호출 "); z( Z"); // Hello Z! Bye Bye Z! Console.WriteLine( 대리자 w 호출 "); w( W"); // Bye Bye W! Event Event란발생한사건을알리기위해보내는메시지 이벤트는마우스클릭, 키누름등동작의발생을알리기위해개체에서보내는메시지 GUI 컨트롤, 특정객체의상태변화를알리는신호로사용 이벤트, 이벤트발생기, 이벤트처리기로구성됨 이벤트송신기 (Publisher) 에서이벤트를발생시키고, 이벤트수신기 (Subscriber) 에서이벤트를캡처하여이벤트에응답 NET Framework에서의이벤트는 delegate 모델에기반 delegate 는이벤트에대해등록된이벤트처리기 (event handler) 목록을유지하여이벤트를발생시킨객체의발송자역할담당 16

5 Event 동작원리 이벤트송신기 (Publisher) 이벤트 (Event) 를발생하여특정객체 (Subscriber) 에게통지 이벤트수신기 (Subscriber) Publisher 특정이벤트발생시이벤트에반응하여처리할개체 Publisher로부터호출되어질이벤트처리메소드 (Event Handler) 를등록한객체 Event e Event Handler list == Delegate Invocation List Object1.method Subscribers Obj1 Request Object2.method Obj2 Delegate d Object3.method Obj3 17 Event 구성요소 이벤트핸들러대리자 (Delegate) 이벤트에응답하는메소드를가리키는대리자 닷넷프레임워크에서정의된 EventHandler 대리자형식으로선언 public delegate void EventNameEventHandler (Object sender, EventArgs e) Object sender 이벤트발생객체 EventArgs e 이벤트발생시넘겨줄추가정보, EventArgs 클래스로부터상속 추가정보를사용하지않는이벤트에대해서는닷넷프레임워크에서정의된 EventHandler 대리자이용 18 Event 구성요소 이벤트를발생시키는객체 (Publisher) 이벤트선언 event 키워드를사용하여대리자형식의필드처럼사용 인터페이스에서정의가능 public event EventNameEventHandler EventName; 이벤트를발생시키는내용을포함하는메소드 (OnEventName) 정의 이벤트를선언한클래스에서만이벤트호출 ( 발생 ) 하위클래스에서재정의하거나호출가능하도록 virtual 로정의 public class EventPub { public event MyEventHandler MyEvent; // 이벤트선언 protected virtual void OnMyEvent(EventArgs e) { if (MyEvent!= null) MyEvent(this, e); // 이벤트호출 ( 발생 ) 19 Event 구성요소 이벤트에응답하는객체 (Subscriber) 이벤트처리 (Event Handler) 메소드정의 이벤트핸들러대리자형식 하위클래스에서재정의하거나호출가능하도록 virtual 로정의 이벤트처리메소드를이벤트대리자에연결 ( 등록 ) class EventSub { virtual void MyEventH(Object sender, EventArgs e){... // 이벤트핸들러 EventPub p = new EventPub(); // publisher object EventSub s = new EventSub(); // subscriber object p.myevent += new MyEventHandler(s.MyEventH); // 이벤트핸들러등록 p.onmyevent(args); // 이벤트요청 20

6 Event 구성요소 이벤트매개변수 (Event Argument) 이벤트발생시추가할정보 이벤트핸들러로넘겨줄데이터 EventName EventArgs 클래스정의 System.EventArgs에서파생 // 이벤트매개변수클래스정의 (System.EventArgs 에서상속 ) class MyEventArgs : EventArgs { // 이벤트매개변수객체생성 MyEventArgs args = new MyEventArgs(..); // 이벤트발생시매개변수로처리 p.onmyevent(args); 21 Delegate 를통한이벤트처리 using System; namespace EventTest { public delegate void MyEventHandler(); // 대리자이벤트모델 class MyButton { // mybutton 클래스는윈도우응용프로그램이제공하는버튼컨트롤 public event MyEventHandler MyEvent; // 이벤트정의 public void OnMyEvent() { if (MyEvent!= null) MyEvent(); // 이벤트핸들러정의 class EventTest { public EventTest() { // 이벤트를가지고있는 MyButton을객체로만듦 MBtt MyButton btt button1 = new MBtt MyButton(); // 이벤트에 button1_click을위임 button1.myevent += new MyEventHandler(this.button1_Click); // 이벤트에 button1 의이벤트를호출 button1.onmyevent(); void button1_click() { Console.WriteLine( 버튼에서이벤트발생 ); static void Main(string[] args) { EventTest e = new EventTest(); // 버튼에서이벤트발생 22 Delegate 를통한이벤트추가및제거 class EventTest { 클릭이벤트추가후버튼클릭 public EventTest() { -> 클릭이벤트발생 // 이벤트를가지고있는 MyButton을객체로만듦변경이벤트추가후버튼클릭 MyButton button1 = new MyButton(); -> 클릭이벤트발생 Console.WriteLine( 클릭이벤트추가후버튼클릭 ); -> 변경이벤트발생 // 이벤트에 button1_click을위임 button1.myevent 1M t += new MyEventHandler(this.button1_Click); tt // 이벤트에 button1의이벤트를호출 button1.onmyevent(); Console.WriteLine( 변경이벤트추가후버튼클릭 ); // 이벤트에 button1_change를위임 button1.myevent += new MyEventHandler(this.button1_Change); // 이벤트에 button1 의이벤트를호출 (Click + Change 호출 ) button1.onmyevent(); void button1_click() { Console.WriteLine( WriteLine( -> 클릭이벤트발생 ); void button1_change() { Console.WriteLine( -> 변경이벤트발생 ); static void Main(string[] args) { EventTest e = new EventTest(); 23 Event 에인자전달 delegate void ClickEventHandler(string label); // delegate event class MyButton { // MyButton 클래스는윈도우응용프로그램이제공하는버튼컨트롤 public event ClickEventHandler ClickEvent; // 이벤트정의 public void OnClickEvent() { if (ClickEvent!= null) ClickEvent(label); public string Label { set { label = value; get { return label; string label; class EventTest { public EventTest() { // 이벤트를가지고있는 MyButton 을객체로만듦 MyButton button1 = new MyButton(); // 이벤트에 button1_label을위임 button1.label = 테스트 ; button1.clickevent += new ClickEventHandler(this.button1_Label); // 이벤트에 button1의이벤트를호출 button1.onclickevent(); void button1_label(string label) { Console.WriteLine( -> 클릭이벤트발생 : + label); static void Main(string[] args) { EventTest e = new EventTest();// -> 클릭이벤트발생 : 테스트 24

7 Anonymous Method 무명메소드 (Anonymous Method) 를사용하여메소드이름이아닌코드블록자체를대리자 (Delegate) 의매개변수로사용할수있음 별도의메소드를생성할필요가없으므로대리자를객체화하는데따르는코딩오버헤드를줄일수있음 public MyForm() { addbutton.click += new EventHandler(AddClick); void AddClick(object sender, EventArgs e) { MessageBox.Show(textBox.Text); public MyForm() { addbutton.click += delegate(object sender, EventArgs e) { MessageBox.Show(textBox.Text); 25 Attribute 특성 (Attribute) 은미리정의된시스템정보나사용자지정정보를대상요소 ( 어셈블리, 클래스, 구조체, 메소드등 ) 와연결시켜주는기능을가짐 Attribute 정보는 Assembly에 Metadata 형식으로저장됨 Attribute 형식 [attribute 명 ( positional_parameter, named_parameter=value,..)] Attribute는 [] 를사용하여, [] 안에 Attribute 이름, 지정위치매개변수와명명매개변수를기입 지정위치매개변수 (positional_parameter) 필수적인정보, 생성자매개변수에해당, 을사용하여값을기입 명명매개변수 (named_parameter) 선택적인정보, 속성에해당, = 를사용하여멤버필드와값을기입 내장특성에 Conditional, DllImport, AttributeUsage 등이 26 있음 Conditional Attribute Conditional 특성은조건부메소드를생성할때사용 특정전처리식별자에의해실행되는조건부메소드 C++ 에서 #if conditional #endif 전처리기지시문과유사 #define 유무에따라서호출이결정되는조건부메소드에사용 반드시 using System.Diagnostics를사용해야함 조건부메소드의반환형이 void 형을사용해야함 #define DEBUG // 만약 #undef DEBUG를하면 Conditional 부분이지나감 using System.Diagnostics; class ConditionalAttributeTest i ib { [Conditional( DEBUG )] public static void DebugInfoPrint() {. // 요부분만호출 [Conditional( REGULAR )] public static void InfoPrint() {. 27 DllImport Attribute DllImport 특성은닷넷응용프로그램에서관리되지않는 DLL 함수또는메소드를사용할수있게하는특성 반드시 using System.Runtime.InteropService를사용해야함 아래예는, Win32 API의 MessageBox 함수를호출하는경우 using System.Runtime.InteropServices; class DllImportAttributeTest { [DllImport( User32 User32.dll dll, CharSet = CharSet.Auto)] public static extern int MessageBox(int h, String text, String title, uint type) MessageBox(0, Test Win32 MessageBox, DllImportTest, 2); 28

8 Generic 제네릭 (Generic) 은다양한자료형에적용될수있는일반적인클래스를정의함 제네릭은사용할자료형을매개변수로전달받음 public class IntStack { int[] items; int count; public void Push(int item) { public int Pop() { public class FloatStack { float[] items; int count; public void Push(float item) { public float Pop() { public class Stack<T> { T[] items; int count; public void Push(T item) { public T Pop() {. Stack<int> istack = Stack<int>(); istack.push(3); int x = istack.pop(); Stack<float> fstack = Stack<float>(); fstack.push(3.0); int y = fstack.pop(); Collections 컬랙션 (Collections) 은객체를쉽게다룰수있도록여러가지클래스와인터페이스를미리정의한데이터구조 데이터구조란데이터를다루는방식을정의한것 프로그래머가일일이데이터구조를만드는불편함감소 컬랙션으로 ArrayList, SortedList, Hashtable, Stack, Queue, NameValueCollection 등이있음 컬랙션특징 데이터를보관할수있으며수정, 삭제, 삽입, 검색등의기능 컬랙션은클래스마다구현되어지는알고리즘 ( 예로, LinkedList, Hash, Stack, Queue 등 ) 이다를뿐같은부류임 동적으로메모리확장가능 Collections System.Collections의클래스와인터페이스 SortedList Stack, Queue BitArray NameValueCollections IEnumerable, IEnumerator ICollection IList IDictionary, IDictionaryEnumerator ICloneable Iserializable ArrayList Hashtable SortedList Class SortedList는 Hashtable과 ArrayList의혼합형 내부의데이터는키 (Key) 와값 (Value) 로이루어져있으며키를기준으로정렬되고키와인덱스로접근가능 내부적으로정렬된컬랙션을유지하고있는특징을가짐 public class SortedList: IDictionary, ICollection, IEnumerable, ICloneable SortedList t 특징 키의목록또는값의목록만반환하는메소드제공 내부적으로두개의배열, 즉키에대한배열과값에대한배열을유지하여요소를목록에저장 SortedList는각요소에대해키, 값또는인덱스의세가지방법으로접근 요소가삽입되면, 지정된키가이미존재하는검사 ( 중복키허용안함 )

9 SortedList Class SortedList 메소드 Add() 키와값으로데이터를삽입 Clear() 모든요소를제거 Contains() 특정키가들어있는지여부를확인 ContainsKey(), ContainsValue() 특정키 / 값이들어있는지여부확인 GetByIndex(), GetKey() 지정한인덱에서값 / 키를가져옴 GetKeyList() 키리스트를가져옴 Remove(), RemoveAt() 지정한키 / 인덱스로요소를제거 GetNumerator() IDictionaryEnumerator 를반환 Queue Class Queue 는 FIFO(First-In, First-Out) 컬랙션 FIFO 먼저들어간데이터가제일먼저나오는메모리구조를클래스화 public class Queue: ICollection, IEnumerable, ICloneable Queue 메소드 Enqueue() 메소드는큐의첫위치에요소를삽입 Dequeue() 메소드는큐의마지막위치의요소를반환하고삭제 ( 반환되는데이터형은 object형 ) Peek() 메소드는마지막위치의요소를제거하지않고반환 ( 반환되는데이터형은 object형 ) Stack Class Stack 는 LIFO(Last-In, First-Out) 컬랙션 LIFO 제일마지막에들어간데이터가제일먼저나오는메모리구조를클래스화 public class Stack: ICollection, IEnumerable, ICloneable Stack 메소드 Push() 메소드는스택의맨위에요소를삽입 Pop() 메소드는스택의맨위에있는요소를삭제하고데이터반환 ( 반환되는데이터형은 object형 ) Peek() 메소드는스택의맨위에있는요소를제거하지않고반환 ( 반환되는데이터형은 object 형 ) ArrayList Class ArrayList 는 ILIST 를구현한대표적인클래스 ArrayList 는데이터를삽입했을때순서대로삽입되며중간삽입이나제거또한가능 public class ArrayList: IList, ICollection, IEnumerable, ICloneable ArrayList 메소드 Add(), AddRange() 메소드는데이터 / 데이터리스트삽입 Insert() 메소드는중간에데이터삽입 Remove(), RemoveAt(), RemoveRange() 메소드는해당요소제거또는인덱스로요소제거또는범위만큼요소제거 Sort() 메소드는요소정렬 GetEnumerator() 메소드는 IEnumerator를반환

10 Hashtable Class Hashtable 은 IDictionary 를구현한대표적인클래스 내부의데이터는키 (Key) 와값 (Value) 을이용 public class Hashtable: IDictionary, ICollection, IEnumerable, Hashtable 메소드 ISerializable, IDeserializationCallback, ICloneable Add() 메소드는 ( 키, 변수 ) 로된데이터삽입 Clear() 메소드는모든요소제거 Remove() 메소드는키를확인하여요소삭제 ContainsKey(), ContainsValue() 메소드는특정키 / 값을포함하는지확인 CopyTo() 메소드는해쉬테이블에있는원소를 1차원배열로복사 Keys, Values 속성은 ICollection 으로반환 GetEnumerator() 메소드는 IEnumerator를반환 Collections Interface Ienumerable 인터페이스 GetEnumerator() IEnumerator 개체를반환 IEnumerator 인터페이스 내부에서 IEnumerable을사용하여데이터검색기능제공 Current 속성 컬랙션에서현재객체에대한참조를반환 MoveNext() 다음요소로이동 Reset() Current 포인터를컬랙션의처음앞으로설정 ICollection 인터페이스 Count 속성 컬랙션의객체수를반환 IsSynchronized 속성 - 다중스레드된액세스를위해컬랙션에대한액세스를동기화한경우 true 반환 SyncRoot 속성 하나이상의코드문장이동시에한스레드에만실행되는것을확실하게하기위해잠그거나해제 CopyTo() 지정한배열위치부터컬랙션요소를배열로복사 Collections Interface IList 인터페이스 ICollection 인터페이스에서파생된것으로 IEnumerable과 ICollection 기능을모두포함 IsFixedSize 속성 리스트가고정길이리스트인지확인 IsReadOnly 속성 리스트가읽기전용인지확인 인덱서속성 인덱스값으로데이터를얻거나추가 Add() 리스트끝에데이터를추가 Clear() 리스트내의모든데이터를제거 Contains() 어떤데이터가리스트내에존재하는지여부확인 IndexOf() 리스트내의특정데이터의위치를반환 Insert() 리스트내의특정위치에데이터를삽입 Remove() 매개변수로입력된객체를리스트내에서제거 RemoveAt() 지정한인덱스의데이터를제거 Collections Interface IDictionary 인터페이스 순서에의존하는 IList와달리키와값으로대응시켜데이터를추출 IsFixedSize 속성 컬랙션의크기가정해져있는지검사 IsReadOnly 속성 컬랙션이읽기전용인지확인 Keys 속성 컬랙션내의모든키를나열 Values 속성 컬랙션내의모든값을나열 Add() 키와값을전달하여데이터를컬랙션에추가 Clear() 컬랙션의모든데이터를제거 Contains() 특정키가데이터와연관되어있는지검사 GetEnumerator() IDictionaryEnumerator 반환 Remove() 삭제할값의키를전달하여데이터를컬랙션에서제거 IDictionaryEnumerator 인터페이스 DictionaryEntry 속성 열거요소내의키와값을가져옴 Key 속성 열거요소내의키를가져옴 Value 속성 열거요소내의값을가져옴

11 FILE I/O 스트림 (Stream) 자료의입출력을도와주는추상적인개념의중간매체 입력스트림 (Input Stream) 은데이터를스트림으로읽어들임 출력스트림 (Output Stream) 은데이터를스트림으로내보냄 스트림을사용하는곳 파일 키보드, 모니터, 마우스 메모리 네트워크 프린트 FILE I/O 입출력스트림 (Input/Output Stream) 클래스 FileStream 클래스 파일에스트림을생성하는클래스 BufferedStream 클래스 버퍼기능을가진바이트스트림 MemoryStream 클래스 메모리에입출력바이트스트림 TextReader & TextWriter 클래스 문자스트림입출력추상클래스 StringReader & StringWriter 클래스 string 입출력스트림 BinaryReader & BinaryWriter 클래스 데이터타입의메모리사이즈에따른바이너리입출력스트림 파일 (File) 과디렉토리 (Directory) 클래스 FileSystemInfo 파일시스템객체를나타내는기본클래스 Directory, DirectoryInfo 디렉토리를나타내는기본클래스 File, FileInfo 파일을나타내는기본클래스 Path 경로클래스 FILE I/O File 클래스 I/O 기본클래스로파일에관련된정보를제공하거나, FileStream의객체를생성하여파일의 I/O작업을수행 sealed 키워드를사용하여클래스의상속을막음 멤버메소드들이 public static으로선언 using System.IO 를사용 파일관련메소드제공 Create, Copy, Move, Delete 파일을생성, 복사, 이동, 삭제 Open, OpenRead, OpenText, OpenWrite 파일열기 AppendText 유니코드텍스트를추가하는 StreamWriter 생성 Exists - 파일존재여부를확인 SetCreationTime, GetCreationTime 파일이생성된날짜와시간 SetAttributes, GetAttributes 파일의지정된 FileAttributes 등등 FILE I/O Directory 클래스 디렉토리생성, 이동, 삭제, 디렉토리존재여부, 하위디렉토리들의이름, 디렉토리내의파일이름의정보를알아내는데사용하는클래스 sealed 키워드를사용하여클래스의상속을막음 멤버메소드들이 public static으로선언 디렉토리관련메소드제공 CreateDirectory, Delete 디렉토리생성, 이동, 삭제 Exists 디렉토리존재여부를확인 GetFiles 디렉토리에있는파일목록배열반환 GetDirectories 디렉토리에있는하위디렉토리목록배열반환

12 FILE I/O Path 클래스 파일이나디렉토리의경로 (Path) 를확장및변경, 수정하는클래스 sealed 키워드를사용하여클래스의상속을막음 멤버필드와메소드들이 public static ti 으로선언 경로관련필드와메소드제공 DirectorySeparatorChar 디렉토리구분자캐릭터 Combine 경로들결합 GetFileName 경로에서파일이름을얻기 FILE I/O FileStream 클래스 파일입출력뿐만아니라파일과관련된다른운영체제의핸들 ( 파이프, 표준입력, 표준출력등 ) 을읽고쓰는데도유용하게사용 바이트스트림이아닌문자스트림을사용하기위해서는 FileStream을 StreamReader와 StreamWriter로변환하여사용 using System.IO; class FileTest { FileStream fs = File.OpenRead( C:/Test.txt ); StreamReader r = new // 한글처리시필요 StreamReader(fs, System.Text.Encoding.Default); r.basestream.seek(0, S SeekOrigin.Begin); i i while(r.peek() > -1) { r.readline();. r.close(); FILE I/O using System.IO; class FileTest { string path C:\Output.txt FileStream fs = new FileStream(path, FileMode.Create); StreamWriter w = new // 한글처리시필요 StreamWriter(fs, System.Text.Encoding.Default); t //w.basestream.seek(0, SeekOrigin.Begin); w.basestream.seek(0, SeekOrigin.End); // 맨뒤에추가 w.writeline(); //. 중간생략 w.flush(); // 스트림에기록한모든데이터를밀어내는역할 wclose(); w.close(); Assembly COM 이미사용중인검증된코드의재사용을위해 COM 활용 서로다른언어로작성된 Binary 타입공유를위해 COM 서버생성 Client 에서 COM 서버를호출할때 COM 서버의버전을확인할수없음 COM 서버위치나이름이바뀌게되면 Registry의변경이쉽지않음 Assembly 어셈블리란.exe,.dll과같은프로그램의제일작은실행단위 배포의단위로써코드재사용및버전관리를가능하게하는단위 Class 접근제한자인 internal의허용단위 같은 COM DLL에대한서로다른버전동시제공가능 ( 즉, Client가원하는버전을파악하여해당버전을로딩 ) 어셈블리내에자신에대한메타데이터를포함하여배포는해당파일을원하는위치에복사함 ( 즉, Registry에등록하지않음 ) Native Code가아니라 MSIL이라는중간코드

13 Assembly 어셈블리의구성 Manifest - 다른어셈블리를참조한다면그정보가필요함 Type Metadata - 어셈블리안에존재하는클래스, 속성, 메소드, 변수등에대한정보 MSIL 컴파일했을때만들어지는실제실행파일 Resource - 어셈블리가사용하는리소스이며해당프로그램의이미지나텍스트, 아이콘등 Assembly ILDASM 도구 Visual C++ 의 dumpbin.exe나 Turbo C의 tdump.exe에해당하는유틸리티로실행파일의내부구조를보여줌 메니페스트메타정보를표시.assembly.class : 해당어셈블리내에존재하는클래스파일의정보를보여줌.method : 해당어셈블리내에존재하는메소드의정보를보여줌.ctor : constructor 파일의약자로생성자를의미 Assembly C# DLL 생성 새프로젝트 -> 템플렛 -> 클래스라이브러리선택 어셈블리로사용할기능은 *.cs 파일로작성 컴파일은 *dll *.dll 파일로작성 C# DLL 활용 해당어셈블리가필요한곳에서 DLL 참조하여사용 해당어셈블리의네임스페이스 using 어셈블리의속성, 메소드사용 Assembly csc 컴파일러를사용한 C# DLL 생성및활용예 Point 클래스와 Point3D 클래스를 PointLib 라이브러리로생성 csc /out:pointlib.dll /t:library Point.cs Point3D.cs PointTest t 클래스에서 PointLib 라이브러리사용 csc /out:pointtest.exe /reference:pointlib.dll PointTest.cs 작업한어셈블리참조추가하기

Microsoft PowerPoint - hci2-lecture7.ppt [호환 모드]

Microsoft PowerPoint - hci2-lecture7.ppt [호환 모드] Overview 고급 C# 프로그래밍 321190 2013 년가을학기 10/5/2013 박경신 속성 (Property), 인덱서 (Indexer) 대리자 (Delegate), 이벤트 (Event) 무명메소드 (Anonymous Method) 람다식 (Lambda Expression) 특성 (Attribute) 제네릭 (Generic) 컬렉션 (Collections)

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

선형대수학 Linear Algebra

선형대수학  Linear Algebra 배열, 컬렉션, 인덱서 array, collection, indexer 소프트웨어학과 HCI 프로그래밍강좌 배열 배열 (array) 동일한자료형을다수선언 선언형식 데이터형식 [ ] 배열이름 = new 데이터형식 [ 개수 ]; int[ ] array = new int[5]; 인덱스 (index) 는 0 에서시작 scores[0] = 80; scores[1] =

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft 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 information

PowerPoint Presentation

PowerPoint 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 information

gnu-lee-oop-kor-lec06-3-chap7

gnu-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

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

Microsoft PowerPoint - hci2-lecture12 [호환 모드]

Microsoft PowerPoint - hci2-lecture12 [호환 모드] Serialization C# Serialization 321190 2012 년가을학기 11/28/2012 박경신 Serializaiton( 직렬화 ) 란객체상태를지속시키거나전송할수있는형식으로변환하는과정으로, Serialization 반대로다시객체로변환하는것을 Deserialization 임 Serialization i 을사용하는이유 객체의상태를저장소에보존했다가나중에똑같은복사본을다시만들기위하거나,

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

JAVA PROGRAMMING 실습 05. 객체의 활용

JAVA 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 information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

PowerPoint Presentation

PowerPoint 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 information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

PowerPoint Presentation

PowerPoint 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

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

(Microsoft PowerPoint - hci2-lecture12 [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - hci2-lecture12 [\310\243\310\257 \270\360\265\345]) Serialization C# Serialization 321190 2015 년가을학기 11/27/2015 박경신 Serializaiton( 직렬화 ) 란객체상태를지속시키거나전송할수있는형식으로변환하는과정으로, Serialization 반대로다시객체로변환하는것을 Deserialization 임 Serialization 을사용하는이유 객체의상태를저장소에보존했다가나중에똑같은복사본을다시만들기위하거나,

More information

PowerPoint Presentation

PowerPoint 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

슬라이드 1 컬렉션프레임워크 (Collection Framework) 의정의 - 다수의데이터를쉽게처리할수있는표준화된방법을제공하는클래스들 - 데이터의집합을다루고표현하기위한단일화된구조 (architecture) - JDK 1.2 이전까지는 Vector, Hashtable, Properties와같은컬렉션클래스로서로다른각자의방식으로처리 - 컬렉션프레임워크는다수의데이터를다루는데필요한다양하고풍부한클래스들을제공하므로프로그래머의부담을상당부분덜어준다.

More information

Design Issues

Design 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

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 인터페이스 배효철 th1g@nate.com 1 목차 인터페이스의역할 인터페이스선언 인터페이스구현 인터페이스사용 타입변환과다형성 인터페이스상속 디폴트메소드와인터페이스확장 2 인터페이스의역할 인터페이스란? 개발코드와객체가서로통신하는접점 개발코드는인터페이스의메소드만알고있으면 OK 인터페이스의역할 개발코드가객체에종속되지않게 -> 객체교체할수있도록하는역할 개발코드변경없이리턴값또는실행내용이다양해질수있음

More information

Microsoft PowerPoint - Lect07.pptx

Microsoft PowerPoint - Lect07.pptx 이강의록은 Power Java 저자의강의록을사용했거나재편집된것입니다. Package 개념 Package 묶는방법사용하기기본 Package Utility Package Generic Class Generic Method Collection ArrayList LinkedList Set Queue Map Collection Class 3 패키지 (package)

More information

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

<4D F736F F D20BEBEBCA520C4DAB5F920BFACBDC0202D20B8D6C6BC20BEB2B7B9B5E5BFCD20C0CCBAA5C6AE2E646F6378>

<4D F736F F D20BEBEBCA520C4DAB5F920BFACBDC0202D20B8D6C6BC20BEB2B7B9B5E5BFCD20C0CCBAA5C6AE2E646F6378> C# 코딩연습 멀티쓰레드와이벤트 2009-05-18 김태현 (kimgwajang@hotmail.com) I. 서 제블로그 1 의카테고리중에.NET Tip of The Day' 라는것이있는데, 동명의사이트 2 에실린유용한닷넷팁들을번역하여소개하는포스팅이모여있습니다. 이중 Correct event invocation 3 라는제목의포스트가있는데, 멀티쓰레드환경에서이벤트를호출하는올바른방법에관해서설명을하고있습니다.

More information

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx 자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March

More information

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력 # 왜생겼나요..? : 절차지향언어가가진단점을보완하고다음의목적을달성하기위해..! 1. 소프트웨어생산성향상 객체지향소프트웨어를새로만드는경우이미만든개체지향소프트웨어를상속받거나객체를 가져다재사용할수있어부분수정을통해소프트웨어를다시만드는부담줄임. 2. 실세계에대한쉬운모델링 실세계의일은절차나과정보다는일과관련된많은물체들의상호작용으로묘사. 캡슐화 메소드와데이터를클래스내에선언하고구현

More information

슬라이드 1

슬라이드 1 CHAP 6: 큐 yicho@gachon.ac.kr 1 큐 (QUEUE) 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In First-Out) ( 예 ) 매표소의대기열 Ticket Box 전단 () 후단 () 2 큐 ADT 삽입과삭제는 FIFO 순서를따른다. 삽입은큐의후단에서, 삭제는전단에서이루어진다. 객체 : n 개의 element

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 7 장클래스와객체 이번장에서학습할내용 객체지향이란? 객체 메시지 클래스 객체지향의장점 String 클래스 객체지향개념을완벽하게이해해야만객체지향설계의이점을활용할수있다. 실제세계는객체로이루어진다. 객체지향이란? 실제세계를모델링하여소프트웨어를개발하는방법 절차지향과객체지향 절차지향프로그래밍 (procedural programming): 문제를해결하는절차를중요하게생각하는방법

More information

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 22 장제네릭과컬렉션 이번장에서학습할내용 제네릭클래스 제네릭메소드 컬렉션 ArrayList LinkedList Set Queue Map Collections 클래스 일반적인하나의코드로다양한자료형을처리하는기법을살펴봅시다. 제네릭이란? 제네릭프로그래밍 (generic programming) 다양한타입의객체를동일한코드로처리하는기법 제네릭은컬렉션라이브러리에많이사용

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 11 장상속 이번장에서학습할내용 상속이란? 상속의사용 메소드재정의 접근지정자 상속과생성자 Object 클래스 종단클래스 상속을코드를재사용하기위한중요한기법입니다. 상속이란? 상속의개념은현실세계에도존재한다. 상속의장점 상속의장점 상속을통하여기존클래스의필드와메소드를재사용 기존클래스의일부변경도가능 상속을이용하게되면복잡한 GUI 프로그램을순식간에작성

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 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

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

gnu-lee-oop-kor-lec11-1-chap15

gnu-lee-oop-kor-lec11-1-chap15 어서와 Java 는처음이지! 제 15 장컬렉션 컬렉션 (collection) 은자바에서자료구조를구현한클래스 자료구조로는리스트 (list), 스택 (stack), 큐 (queue), 집합 (set), 해쉬테이블 (hash table) 등이있다. 자바는컬렉션인터페이스와컬렉션클래스로나누어서제공한다. 자바에서는컬렉션인터페이스를구현한클래스도함께제공하므로이것을간단하게사용할수도있고아니면각자필요에맞추어인터페이스를자신의클래스로구현할수도있다.

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

PowerPoint Template

PowerPoint 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 information

03_queue

03_queue Queue Data Structures and Algorithms 목차 큐의이해와 ADT 정의 큐의배열기반구현 큐의연결리스트기반구현 큐의활용 덱 (Deque) 의이해와구현 Data Structures and Algorithms 2 큐의이해와 ADT 정의 Data Structures and Algorithms 3 큐 (Stack) 의이해와 ADT 정의 큐는 LIFO(Last-in,

More information

17장 클래스와 메소드

17장 클래스와 메소드 17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는

More information

PowerPoint Presentation

PowerPoint 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>

<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 information

Microsoft PowerPoint - Chap12-OOP.ppt

Microsoft PowerPoint - Chap12-OOP.ppt 객체지향프로그래밍 (Object Oriented Programming) 12 장강사 강대기 차례 (Agenda) 멤버에대한동적메모리할당 암시적 / 명시적복사생성자 암시적 / 명시적오버로딩대입연산자 생성자에 new 사용하기 static 클래스멤버 객체에위치지정 new 사용하기 객체를지시하는포인터 StringBad 클래스 멤버에포인터사용 str static 멤버

More information

PowerPoint Presentation

PowerPoint Presentation 자바프로그래밍 1 클래스와메소드심층연구 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 접근제어 class A { private int a; int b; public int c; // 전용 // 디폴트 // 공용 public class Test { public static void main(string args[]) { A obj = new

More information

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 제이쿼리 () 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 CSS와마찬가지로, 문서에존재하는여러엘리먼트를접근할수있다. 엘리먼트접근방법 $( 엘리먼트 ) : 일반적인접근방법

More information

Microsoft PowerPoint - 2강

Microsoft PowerPoint - 2강 컴퓨터과학과 김희천교수 학습개요 Java 언어문법의기본사항, 자료형, 변수와상수선언및사용법, 각종연산자사용법, if/switch 등과같은제어문사용법등에대해설명한다. 또한 C++ 언어와선언 / 사용방법이다른 Java의배열선언및사용법에대해서설명한다. Java 언어의효과적인활용을위해서는기본문법을이해하는것이중요하다. 객체지향의기본개념에대해알아보고 Java에서어떻게객체지향적요소를적용하고있는지살펴본다.

More information

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어서가장중요한부분이라고도할수있기때문입니다. 1. 새로운메크로생성 새메크로만들기버튺을클릭하여파일을생성합니다. 2. 메크로저장 -

More information

Chapter 4. LISTS

Chapter 4. LISTS C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or

More information

Chapter #01 Subject

Chapter #01  Subject Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned

More information

untitled

untitled - -, (insert) (delete) - - (insert) (delete) (top ) - - (insert) (rear) (delete) (front) A A B top A B C top push(a) push(b) push(c) A B top pop() top A B D push(d) top #define MAX_STACK_SIZE 100 int

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

PowerPoint Presentation

PowerPoint Presentation 자바프로그래밍 1 배열 손시운 ssw5176@kangwon.ac.kr 배열이필요한이유 예를들어서학생이 10 명이있고성적의평균을계산한다고가정하자. 학생 이 10 명이므로 10 개의변수가필요하다. int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; 하지만만약학생이 100 명이라면어떻게해야하는가? int s0, s1, s2, s3, s4,

More information

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx 2018 학년도 1 학기 JAVA 프로그래밍 II 514760-1 2018 년봄학기 5/10/2018 박경신 Lab#1 (ImageTest) Lab#1 은영상파일 (Image) 을읽어서정보를출력 Java Tutorials Lesson: Working with Images https://docs.oracle.com/javase/tutorial/2d/images/index.html

More information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

슬라이드 1

슬라이드 1 정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함

More information

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등

More information

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public Chapter 9 Lab 문제정답 1. public class Circle private double radius; static final double PI=3.141592; // PI 이름으로 3.141592 로초기화된정적상수 (1) public Circle(double r) radius = r; (2) public double getradius() return

More information

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074> 객체지향프로그램밍 (Object-Oriented Programming) 1 C++ popular C 객체지향 (object oriented) C++ C : 상위계층언어특징 + 어셈블리언어특징 C++ : 소프트웨어개발플랫폼에객체지향개념제공 객체지향 : 자료와이들자료를어떻게다룰것인지따로생각하지않고단지하나의사물로생각 형 변수가사용하는메모리크기 변수가가질수있는정보

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

제 1장 C#의 개요

제 1장 C#의 개요 C# 프로그래밍언어 MS사의앤더스헬스버그 (Anders Hejlsberg) 가고안.NET에최적화된언어컴포넌트지향프로그래밍언어자바의단점을보완 실행방법 : 자바 : 인터프리테이션, C#: 컴파일방법자바언어를대체할수있는언어 C# 의특징 객체지향언어 : 자료추상화델리게이트와이벤트멀티스레드, 예외처리연산자중복, 제네릭 C 계열의언어 C++ 와자바로부터영향을받았음. C:

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

Lab 3. 실습문제 (Single linked list)_해답.hwp

Lab 3. 실습문제 (Single linked list)_해답.hwp Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.

More information

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap10-함수의활용.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 information

Network Programming

Network Programming Part 5 확장된 Network Programming 기술 1. Remote Procedure Call 2. Remote Method Invocation 3. Object Request Broker 2. Java RMI

More information

어댑터뷰

어댑터뷰 04 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결

More information

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a 6 장복사생성자 객체의생성과대입객체의값에의한전달복사생성자디폴트복사생성자복사생성자의재정의객체의값에의한반환임시객체 C++ 프로그래밍입문 1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y;

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

More information

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter 파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter 클래스의사용법은다음과같다. PrintWriter writer = new PrintWriter("output.txt");

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

3ÆÄÆ®-14

3ÆÄÆ®-14 chapter 14 HTTP >>> 535 Part 3 _ 1 L i Sting using System; using System.Net; using System.Text; class DownloadDataTest public static void Main (string[] argv) WebClient wc = new WebClient(); byte[] response

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

07 자바의 다양한 클래스.key

07 자바의 다양한 클래스.key [ 07 ] . java.lang Object, Math, String, StringBuffer Byte, Short, Integer, Long, Float, Double, Boolean, Character. java.util Random, StringTokenizer Calendar, GregorianCalendar, Date. Collection, List,

More information

Microsoft PowerPoint - lec12 [호환 모드]

Microsoft PowerPoint - lec12 [호환 모드] 제네릭 제네릭클래스 제네릭인터페이스 제네릭메소드 형매개변수의제한 어노테이션 어노테이션형태시스템정의어노테이션사용자정의어노테이션 kkman@sangji.ac.kr 2 제네릭 (generic) 클래스나메소드에자료형을매개변수형식으로사용할수있는기능 자료형과무관하게알고리즘을기술 예전에작성한알고리즘을쉽게재사용가능 어노테이션 (annotation) 프로그램요소에다양한종류의속성정보를추가하기위해서사용

More information

쉽게

쉽게 Power Java 제 4 장자바프로그래밍기초 이번장에서학습할내용 자바프로그램에대한기초사항을학습 자세한내용들은추후에. Hello.java 프로그램 주석 주석 (comment): 프로그램에대한설명을적어넣은것 3 가지타입의주석 클래스 클래스 (class): 객체를만드는설계도 ( 추후에학습 ) 자바프로그램은클래스들로구성된다. 그림 4-1. 자바프로그램의구조 클래스정의

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

More information

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp Lab 4. Circular singly-linked list 의구현 실험실습일시 : 2009. 4. 6. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 12. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Circular Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Circular

More information

교육자료

교육자료 THE SYS4U DODUMENT Java Reflection & Introspection 2012.08.21 김진아사원 2012 SYS4U I&C All rights reserved. 목차 I. 개념 1. Reflection 이란? 2. Introspection 이란? 3. Reflection 과 Introspection 의차이점 II. 실제사용예 1. Instance의생성

More information

슬라이드 1

슬라이드 1 UNIT 6 배열 로봇 SW 교육원 3 기 학습목표 2 배열을사용핛수있다. 배열 3 배열 (Array) 이란? 같은타입 ( 자료형 ) 의여러변수를하나의묶음으로다루는것을배열이라고함 같은타입의많은양의데이터를다룰때효과적임 // 학생 30 명의점수를저장하기위해.. int student_score1; int student_score2; int student_score3;...

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 16 강. 파일입출력목차 파일입출력기초 파일입출력모드 텍스트파일과이진파일 이진파일입출력 임의접근 1 /18 16 강. 파일입출력파일입출력기초 파일입출력과정 파일스트림객체생성 파일열기 사용 : 기본적으로표준입출력객체 (cin, cout) 사용방법과동일 파일닫기 파일스트림클래스의종류

More information

PowerPoint Presentation

PowerPoint Presentation Class : Method Jo, Heeseung 목차 section 1 생성자 (Constructor) section 2 생성자오버로딩 (Overloading) section 3 예약어 this section 4 메소드 4-1 접근한정자 4-2 클래스메소드 4-3 final, abstract, synchronized 메소드 4-4 메소드반환값 (return

More information

Microsoft PowerPoint - CSharp-2-기초문법

Microsoft PowerPoint - CSharp-2-기초문법 2 장. C# 기초문법 자료형 제어문 배열 연산자 순천향대학교컴퓨터학부이상정 1 자료형 순천향대학교컴퓨터학부이상정 2 CTS CTS(Common Type System) 닷넷기반의여러언어에서공통으로사용되는자료형 언어별로서로다른자료형을사용할때발생할수있는호환성문제를해결 값 (Value) 형과참조 (Reference) 형을지원 CTS가제공하는모든자료형은 System.Object를상속받아구현

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

예제 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 information

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap03-변수와데이터형.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 information

(Microsoft PowerPoint - C#\260\355\261\3361.ppt)

(Microsoft PowerPoint - C#\260\355\261\3361.ppt) - 1 - C# Programming 고급 이현정 hjyi@hotmail.com MCT/MCSD/MCAD/MCSD.NET 교재목차 - 2-1부 C# 언어 1장 C, C++ 그리고 C# 2장 Hello, C#! 3장변수와자료형 4장연산자 5장흐름제어 6장메쏘드 7장클래스 8장배열과컬렉션 9장속성과인덱서 10장델리게이트와이벤트 11장예외처리 12장특성 13장일반화프로그래밍

More information

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout <<  양수입력 : ; cin >> *p; if (*p <= 0) cout <<  양수를입력해야합니다  << endl; return; 동적할 15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p

More information

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용

More information