반응형
클래스 생성자를 공부하면서 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();
}
}
}
반응형
'C#' 카테고리의 다른 글
C# -용어정리/VS2019설치/C#프로그래밍 기초(0520) (0) | 2023.03.02 |
---|---|
C# 개발 - 패킷 단위 자르는 방법 공부해서 Wireshark · Go Deep 유사품 만들기 (0) | 2023.03.02 |
C# 개발 - ADO.NET으로 DB(MSSQL) 연결하기 / DB프로시저 개념 /Excel 참조하는 방법 (0) | 2023.03.02 |
C# 문법 -STACK<T>구현 (0) | 2023.03.02 |
C# 문법 -Queue<T>의 구현 (0) | 2023.03.02 |
C# 개발- 배열 /반복문/DATETIME으로 WINFORM UI 만들어 보기 (0) | 2023.03.02 |