==> 생성자.cs


using System;

public class 생성자
{
    public static void Main(string[] args)
    {
        Car car = new Car(); // Car() 생성자를 사용해서 Car 클래스의 car 인스턴스 생성
        car.Print(); // 홍길동    // Car 클래스의 Print()메서드 사용.

        Car sonata = new Car("소나타");
        sonata.Print(); // 소나타

        Car santafe = new Car("산타페");
        santafe.Print(); // 산타페

        Car.Show(); // 정적생성자호출

    }
}


==============================================================================================


==> Car.cs


using System;
//[1] Class
public class Car
{
    //[2] Field
    private string name; // 이름

    //[3] Constructor : 생성자. 클래스 이름과 동일한 이름의 메서드
    public Car() // 기본 생성자(매개변수 없음)
    {
        name = "홍길동"; // 초기화
    }
    /// <summary>
    /// 자동차 이름을 넘기세요.
    /// </summary>
    /// <param name="name">자동차명</param>
    public Car(string name) // 매개변수 있는 생성자
    {
        this.name = name; // this.name은 name필드
    }

    static Car()
    // 정적멤버 초기화 생성자. LIFO형태. 매개변수 가질 수 없음
    // 나중에 선언된 객체 먼저 실행. 객체(인스턴스) 만들어 지기 전에 실행.
    {
        Console.WriteLine("언제?"); // static member 접근 할 때
    }

    //[4] Method
    public void Print()
    {
        Console.WriteLine("이름 : {0}", name);
    }

    public static void Show()
    {
        Console.WriteLine("정적");
    }
}

'.NET프로그래밍 > C# 3.5 SP1' 카테고리의 다른 글

47. 메서드(Method)  (0) 2009.08.12
46. 소멸자(Destructor)  (0) 2009.08.11
44. 필드(Field)  (0) 2009.08.11
43. 클래스(Class)  (0) 2009.08.11
42. 컬렉션 - 5. 리스트(List)  (0) 2009.08.10
Posted by holland14
:

==> 필드.cs


using System;
using Field; // 네임스페이스 참조

public class 필드
{
    public static void Main(string[] args)
    {
        // Field.Car car = new Field.Car(); // 인스턴스 생성
        // 위의 코드 간단히 하기 위해 미리 네임스페이스 위에 선언
        Car car = new Car(); // Car클래스의 인스턴스 생성
        car.name = "에쿠스"; // 이렇게 하면 X
        //Car._Color = "aa"; // 에러...
        //Car.m_birth = 2009; // 에러

        Human na = new Human(); // Human 클래스의 인스턴스(객체) 생성
        na.Name = "홍길동"; // 설정(set)
        Console.WriteLine("이름 : {0}", na.Name); // 사용(get -> 읽기)
    }
}


==============================================================================================

==> Car.cs


using System;

namespace Field
{
    public class Car
    {  
        // 필드(=멤버변수) 3개
        // 변수(Variable)
        public string name; // 소문자로

        // 상수(Constant) : 정적 접근. 읽기 전용 멤버
        public const int m_birth = 2010; // m_ : 멤버변수(member variable)

        // 읽기전용 필드(ReadOnly)
        public static readonly string _Color = "Red"; // _언더스코어 -> 속성매치
    }

    public class Human
    {
        // 이름 저장 공간? 필드
        private string _Name; // 접근 한정자

        // 이름을 외부에서 사용 :  속성(Property) : 속성 선언 정의 메서드
        public string Name {
            get { return _Name; } // 읽기
            set { _Name = value; } // 쓰기
        }
       
    }
}


'.NET프로그래밍 > C# 3.5 SP1' 카테고리의 다른 글

46. 소멸자(Destructor)  (0) 2009.08.11
45. 생성자(Constructor)  (0) 2009.08.11
43. 클래스(Class)  (0) 2009.08.11
42. 컬렉션 - 5. 리스트(List)  (0) 2009.08.10
41. 컬렉션 - 4. 해시테이블(Hashtable)  (0) 2009.08.10
Posted by holland14
:

==> 클래스.cs


using System;

public class 클래스
{  
    // Entry Point
    public static void Main()
    {
        // Car클래스의 인스턴스 생성
        Car car = new Car();    // 새로운 실체(객체)
        car.Color = "Red";
        car.Run();

        // Human 클래스 사용
        Human h = new Human();
        h.Name = "홍길동";
        h.Age = 21;
        h.Show();

        // StaticClass's Instance
        StaticClass.Name = "백";
        StaticClass s = new StaticClass();
        s.Age = 21;
    }
}

==============================================================================================


==> Car.cs

using System;
// Class
public class Car
{  
    // Field : 나중에 private으로.
    public string Color; // 나중에 소문자로...

    // Method
    public void Run()
    {
        Console.WriteLine("{0}색 자동차가 달리다", Color);
    }
}
// Class
public class Human
{
    public string Name; //Field
    public int Age; // Field
    public void Show() { // Method
        Console.WriteLine("{0}, {1}", Name, Age);
    }
}

public class StaticClass
{
    //  static: 정적접근가능
    public static string Name; // Field

    // x : 인스턴스접근 : 객체생성후
    public int Age; // Member Variable
}

Posted by holland14
:
// List<T> 제네릭 클래스 : 필요한 데이터 형식만을 받아 저장
// - ArrayList는 object형 값을 받는다. 정수형만 필요해도 object
using System;
using System.Collections.Generic; // 제네릭 클래스 모음
public struct Addr
{
    public string Name; public int Age;
}
public class 리스트
{
    public static void Main()
    {
        // List<T> 클래스의 인스턴스 생성
        List<string> lst = new List<string>();
        List<Addr> addr = new List<Addr>();
        // Add, Remove() 등은 동일
        lst.Add("C#");
        lst.Add("ASP.NET");
        lst.Insert(0, "HTML");
        Addr a1 = new Addr(); a1.Name = "홍길동"; a1.Age = 21; addr.Add(a1);
        // 일반 배열로 반환
        string[] arr = lst.ToArray(); // 아예 object[]가 아닌 string[]
        // 출력도 동일
        for (int i = 0; i < lst.Count; i++)
   {
       Console.WriteLine(lst[i]);
   }
        for (int i = 0; i < addr.Count; i++)
        {
            Console.WriteLine("{0} {1}", addr[i].Name, addr[i].Age);
        }
    }
}

'.NET프로그래밍 > C# 3.5 SP1' 카테고리의 다른 글

44. 필드(Field)  (0) 2009.08.11
43. 클래스(Class)  (0) 2009.08.11
41. 컬렉션 - 4. 해시테이블(Hashtable)  (0) 2009.08.10
40. 컬렉션 - 3. 배열리스트(ArrayList)  (0) 2009.08.10
39. 컬렉션 - 2. 큐(Queue)  (0) 2009.08.10
Posted by holland14
:

// 해시(Hash) : 추후 암호화(?)라는 단어와 어울림
// 해시테이블 : 키(Key)와 값(Value)의 쌍으로 데이터를 저장
using System;
using System.Collections;

public class 해시테이블
{
    public static void Main()
    {
        // Hashtable instance
        Hashtable ht = new Hashtable();
        // Add(), Insert(), etc
        ht.Add("닷넷코리아", "http://www.dotnetkorea.com/");
        ht.Add(1, "http://www.naver.com/");
        ht.Add("세번째", "http://www.daum.net/");
        // Hashtable[] 인덱서(Indexer)로 출력
        Console.WriteLine(ht["닷넷코리아"]);
        // Key 속성으로 출력: 키값이 있는만큼 반복
        foreach (var item in ht.Keys)
        {
            Console.WriteLine("{0} : {1}", item, ht[item]);
        }
    }
}

'.NET프로그래밍 > C# 3.5 SP1' 카테고리의 다른 글

43. 클래스(Class)  (0) 2009.08.11
42. 컬렉션 - 5. 리스트(List)  (0) 2009.08.10
40. 컬렉션 - 3. 배열리스트(ArrayList)  (0) 2009.08.10
39. 컬렉션 - 2. 큐(Queue)  (0) 2009.08.10
38. 컬렉션 - 1. 스택(Stack)  (0) 2009.08.10
Posted by holland14
:

// .NET 2.0 이상에서는 ArrayList대신에 List<T>를 사용
using System;
using System.Collections;

public class 배열리스트  // 강사님 필기
{
    public static void Main()
    {
        ArrayList al = new ArrayList();

        al.Add("C#");
        al.Add("ASP.NET");
        al.Add("Silverlight");
        al.Insert(0, "HTML");
        al.RemoveAt(3); // Silverlight 삭제
        al.Remove("HTML"); // HTML 삭제
        al.Sort(); // 오름차순 정렬
        al.Reverse(); // 역순으로 정렬
        foreach (var item in al)
     {
      Console.WriteLine(item);
     }
        //  ArrayList의 값을 일반 문자열 배열에 담으려면???
        object[] arr = al.ToArray(); // ArrayList -> Array(배열)로 변경
        foreach (string s in arr)
     {
      Console.WriteLine(s);
     }
 }
}


/*

using System;
using System.Collections;

public class 배열리스트예제1  // 교재 375p
{
    public static void Main()
    {
        ArrayList ar = new ArrayList(10);
        ar.Add(1);
        ar.Add(2.34);
        ar.Add("string");
        ar.Add(new DateTime(2005, 3, 1));
        ar. Insert(1, 1234);

        foreach (object o in ar)
     {
      Console.WriteLine(o.ToString());
     }
        Console.WriteLine("개수: " + ar.Count);
        Console.WriteLine("용량: " + ar.Capacity);
    }
}  

*/


/*
using System;
using System.Collections;

public class 배열리스트예제2  // 교재 376p
{
    public static void Main()
    {
        ArrayList ar = new ArrayList(10);
        ar.Add("이승만");
        ar.Add("박정희");
        ar.Add("최규하");
        ar.Add("전두환");
        ar.Add("노태우");
        ar.Add("김영삼");
        ar.Add("김대중");
        ar.Add("노무현");
        ar.Add("이명박");
        foreach (object o in ar) Console.Write(o + ",");
        ar.Sort();
        ar.Reverse();
        Console.WriteLine();
        foreach (object o in ar) Console.Write(o + ",");
    }
}
*/

Posted by holland14
:

// Queue : FIFO(First In First Out) 형태를 띄는 자료구조, 선입선출
// - 메일, 프린터, 은행대기창구, ...
using System;
using System.Collections; // Queue 클래스

public class 큐
{
    public static void Main()
    {
        // 큐 클래스의  인스턴스(실체;개체) 생성
        Queue mail = new Queue();
        // 큐(대기행렬)에 데이터 저장
        mail.Enqueue("첫번째 메일");
        mail.Enqueue("두번째 메일");
        // 큐 출력
        Console.WriteLine(mail.Dequeue()); // 첫번째
        Console.WriteLine(mail.Dequeue()); // 두번째
    }
}

// 큐(대기행렬)
// EnQueue(QueueIn) : 큐 넣는것
// Dequeue(QueueOut) : 큐 꺼내는것

Posted by holland14
:

// 스택 : 데이터 저장시  LIFO(Last In First Out) 개념을 추가해서 저장
// - LIFO : 나중에 저장된 값이 먼저 호출됨. <> FIFO(First In First Out)
// - 웹브라우저의 뒤로가기, 앞으로가기 기능
using System;
using System.Collections; // 모든 컬렉션(Collection) 관련 네임스페이스

public class 스택  // 교재380p에 관련 내용 나옴
{
    public static void Main()
    {
        //[1] Stack 클래스의 인스턴스 생성
        Stack visits = new Stack();
        //[2] 저장 : Push 메서드 : 스택에 데이터 입력할 때
        visits.Push("야후");
        visits.Push("네이버");
        visits.Push("닷넷코리아");
        //[3] 출력 : Pop() 메서드: 스택에서 데이터 꺼낼 때
        for (int i = 0; i < 3; i++)
        {
            Console.WriteLine("{0}", visits.Pop());
        }
    }
}

// 스택 : 접시 쌓는(Push) 모양
// 스택오버플로우(Overflow) : 스택 꽉찼을때 발생하는 에러
// 스택언더플로우(Underflow) : 스택이 비었을 때 발생하는 에러
// 푸시(Push) : 자료 넣는다.(= 쌓는다) / 팝(Pop) : 자료를 꺼낸다.
// sp(스택포인터)

Posted by holland14
:

// 문자열 처리: String 클래스 > StringBuilder 클래스(긴 문자열 묶을 때)
using System;
using System.Text;

class 스트링빌더   // 교재365p
{
    static void Main()
    {
        StringBuilder str = new StringBuilder("알파벳 : ", 40);
        for (char c = 'a'; c <= 'z'; c++)
        {
            str.Append(c);
        }
        str[10] = '_';
        Console.WriteLine(str);
    }
}

/* 강사님 예제
using System;
using System.Text;

class 스트링빌더
{
    static void Main()
    {
        //[1] 문자열 저장
        string s = "안녕하세요.";
        string ss = "반갑습니다.";
 
        //[2]  긴 문자열 저장
        int row = 3;
        int col = 3; // 2행 2열 테이블 태그 생성
        StringBuilder sb = new StringBuilder();
        sb.Append("<table border='1'>\n");
        for (int i = 0; i < row; i++)
        {
            sb.Append("\t<tr>\n");
            for ( int j = 0; j < col; j++)
            {
                //String.Format() 형태
                sb.AppendFormat("\t\t<td>{0}행 {1}열</td>\n", i, j);
            }
            sb.AppendLine("\t</tr>"); // \n을 포함
        }
        sb.Append("</table>\n");
        //[3] 출력
       Console.WriteLine("{0}", sb.ToString());
    }
}

*/

'.NET프로그래밍 > C# 3.5 SP1' 카테고리의 다른 글

39. 컬렉션 - 2. 큐(Queue)  (0) 2009.08.10
38. 컬렉션 - 1. 스택(Stack)  (0) 2009.08.10
알고리즘 - 9. 선택정렬  (0) 2009.08.07
알고리즘 - 8. 순위(RANK)  (0) 2009.08.07
36. 스톱워치클래스  (0) 2009.08.07
Posted by holland14
:

// 정렬(SORT) : 순서대로 정렬시키는 알고리즘
// 오름차순(Ascending)정렬 : 1, 2, 3, ABC 순
// 내림차순(Descending)정렬 : 3, 2, 1, 다나가 순
// 종류 : 선택정렬, 버블정렬, 퀵정렬, 삽입, 기수, ...
using System;

public class 선택정렬
{
    public static void Main()
    {
        //[1] Input
        int[] data = { 7, 5, 6, 1, 10 };
        //[2] Process : Selection Sort
        int temp = 0; // 데이터 Swap용 임시 변수
        for (int i = 0; i < data.Length - 1; i++)
        {
            for (int j = i + 1; j < data.Length; j++)
            {
                if (data[i] > data[j]) // if (data[i] < data[j]) ==> 내림차순으로 정렬된다.
                {
                    temp = data[i];
                    data[i] = data[j];
                    data[j] = temp;
                }
            }
        }
        //[3] Output
        for (int i = 0; i < data.Length; i++)
        {
            Console.Write("{0} ", data[i]); // 1 5 6 7 10 출력되도록
        } Console.WriteLine();
    }
}





/* 위의 코드 실행되는 순서를 콘솔창에 출력해본 프로그램

using System;

public class 선택정렬
{
    public static void Main()
    {
        //[1] Input
        int[] data = { 7, 5, 6, 1, 10 };
        //[2] Process : Selection Sort
        int temp = 0; // 데이터 Swap용 임시 변수
        for (int i = 0; i < data.Length - 1; i++)
        {
            for (int j = i + 1; j < data.Length; j++)
            {
                if (data[i] > data[j]) // if (data[i] < data[j]) ==> 내림차순으로 정렬된다.
                {
                    temp = data[i];
                    data[i] = data[j];
                    data[j] = temp;
                }
            }
            ShowArray(data); // 현재 i번째 데이터 출력
        }
        //[3] Output
        for (int i = 0; i < data.Length; i++)
        {
            Console.Write("{0} ", data[i]); // 1 5 6 7 10 출력되도록
        } Console.WriteLine();
    }
    private static void ShowArray(int[] data)
    {
        for (int i = 0; i < data.Length; i++)
        {
            Console.Write("{0} ", data[i]);
        } Console.WriteLine();
    }
}

*/

'.NET프로그래밍 > C# 3.5 SP1' 카테고리의 다른 글

38. 컬렉션 - 1. 스택(Stack)  (0) 2009.08.10
37. 스트링빌더(StringBuilder)  (0) 2009.08.10
알고리즘 - 8. 순위(RANK)  (0) 2009.08.07
36. 스톱워치클래스  (0) 2009.08.07
35. 랜덤클래스  (0) 2009.08.07
Posted by holland14
: