본문 바로가기

C#

C# 문법- 클래스 생성자 this 사용법 공부

반응형

클래스 생성자를 공부하면서 this를 사용해본적이 없보니 처음보는 this 구문에 혼란스러웠다. 

생성자도 오버로딩이 가능하다. 그리고 오버로딩은 동일한 생성자명이 가능하며, this를 사용하면 알맞는 형태의 

오버로딩된 다른 생성자를 호출할 수 있다. !

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;

namespace lee
{
    
    public class Student
    {
        private string _name;
        private string _address;
        public Student() : this(null)
        {
            //this를 사용하면 상위의 생성자를 호출한다 .this(null) -> Student(string name) 호출
            // 클래스 인스턴스가 생성 될때 자동으로 불러진다 
            // 생성자는 한개만 ! 
            // 오버로딩으로 여러개 사용은 가능! 
            Console.WriteLine("자동으로 불러진다");
            
        }
        public Student(string name) : this(name, null)
        {
            
        }
        public Student(string name, string address)
        {
            this._name = name;
            this._address = address;
        }
        public void PrintName()
        {
            Console.WriteLine("name :" + _name );
        }
        public void PrintAddress()
        {
            Console.WriteLine("address :" + _address);
        }
    }
}
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using lee;

namespace ConsoleApp2
{
    public class Program
    {
        
        static void Main(string[] args)

        {
            Student student1 = new Student();
            Student student2 = new Student("이준호");
            Student student3 = new Student("이준호","부산광역시");

            student1.PrintName();
            student1.PrintAddress();
            student2.PrintName();
            student2.PrintAddress();
            student3.PrintName();
            student3.PrintAddress();
        }

        
    }
    
}
반응형