본문 바로가기

c#

C# [6] 클래스의 시작과 종료 & 생성자와 소멸자를 코드로 구현 & 오버로딩(Overloading) 개념 및 코드로 구현

728x90
반응형
using System;

class Program
{
    public static void Main(string[] args)
    {
        Person p1 = new Person();
        p1.Name = "김두한";
        p1.Eat();
    }
}

class Person
{
    public string Name;

    public void Eat()
    {
        Console.WriteLine(Name + "(이)가 식사를 합니다.");
    }
}
using System;

class Program
{
    public static void Main(string[] args)
    {
        Cat cat = new Cat("야옹이");


    }
}

class Cat
{
    public string Name;

    public Cat(string name)
    {
        Name = name;
        Console.WriteLine("고양이의 이름은 " + Name + "입니다.");
    }

}

 

- 오버로딩

using System;

class Program
{
    public static void Main(string[] args)
    {
        Cat cat = new Cat("야옹이", 40);


    }
}

class Cat
{
    public string Name;
    public int Weight;

    public Cat(string name)
    {
        Name = name;
        Console.WriteLine("고양이의 이름은 " + Name + "입니다.");
    }

    public Cat(string name, int weight)
    {
        Name = name;
        Weight = weight;
        Console.WriteLine("고양이의 이름은 " + Name + "이고, 몸무게는 " + weight + "입니다.");
    }

}

 

- 소멸자 

~을 클래스 이름에 표시하면 된다. 그리고 생성자는 클래스를 초기화할 때 자동으로 생성되지만, 소멸자는 인스턴스 변수가 사라질 떼 호출되기 때문이다.

using System;

class Program
{
    public static void Main(string[] args)
    {
        Cat cat = new Cat("야옹이");


    }
}

class Cat
{
    public string Name;
    public int Weight;

    public Cat(string name)
    {
        Name = name;
        Console.WriteLine("고양이의 이름은 " + Name + "입니다.");
    }

    ~Cat()
    {
        Console.WriteLine(Name + "이(가) 죽었습니다.");
    }
}
728x90
반응형