Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 가변배열
- 프로퍼티와 생성자
- 배열
- 인덱서
- 배열초기화
- System.Array
- 자동구현프로퍼티
- 인터페이스 예제
- 프로퍼티
- 오버라이딩
- 클래스
- 이것이C#이다
- this 키워드
- 무명형식
- 컬렉션 초기화
- 형식변환
- is
- 중첩클래스
- c#
- 인터페이스 상속
- 분할 클래스
- 튜플
- 일반화 클래스
- 메소드숨기기
- 클래스 연습문제
- as
- 추상 프로퍼티
- base()
- 접근 한정자
- 인터페이스의 프로퍼티
Archives
- Today
- Total
제로의영역
9.4 프로퍼티와 생성자 본문
* 본 블로그 글은 머리가 아~~~주 나쁜 왕X100초보가 프로그래밍을 공부하면서 정리를 위해 작성하는 글입니다. 잘못 정리되거나 제가 잘못 이해한 글은 이해 및 조언 부탁드립니다.
* 공부는 '이것이 C#이다' 책을 보고 하고 있습니다. 참고로 저같은 왕초보가 보기 어렵게 써져 있어서 별도의 정리 문서를 만들게 되었습니다.
1. 정의: 객체를 생성할 때 각 필드를 초기화하는 방법(초기화: 변수에 최초의 데이터를 할당하는 것. 초기화 되지 않은 변수를 사용하려 들면 컴파일러가 에러 메시지를 내며 실행파일을 만들어주지 않음.)
2. 용도: 어떤 필드를 생성자 안에서 초기화할지 고민할 필요가 없음
3. 사용법:
(1) 객체를 생성
(2) 생성한 객체의 클래스에 '{ }' 표시
(3) ' { } '안에 초기화할 프로퍼티를 '프로퍼티 = 초기화할 값' 의 형태로 생성
예)
클래스이름 + 인스턴스 = new + 클래스이름( )
{
프로퍼티1 = 값,
프로퍼티2 = 값,
프로퍼티3 = 값
};
(3) 객체를 생성할 때 <프로퍼티=값> 목록에 객체의 모든 프로퍼티가 올 필요는 없음.
(4) 프로퍼티=값 뒤에 ' ; '가 아닌 ' , '를 붙여줌
(5) 마지막 프로퍼티 뒤에는 아무 표시 없음
(6) } 뒤에 ' ; ' 을 붙여줌.
예제)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ex8._7
{
class BirthdayInfo
{
public string Name
{
get; set; //자동구현 프로퍼티
}
public DateTime Birthday
{
get; set;
}
public int Age
{
get
{
return new DateTime(DateTime.Now.Subtract(Birthday).Ticks).Year;
}
}
}
class MainProgram
{
static void Main(string[] args)
{
BirthdayInfo birth = new BirthdayInfo()
{
Name = "서현", //필드 초기화
Birthday = new DateTime(1991, 6, 28) //필드 초기화
};
Console.WriteLine($"Name:{birth.Name}"); //서현 출력
Console.WriteLine($"Birthday:{birth.Birthday.ToShortDateString()}"); //1991.6.28 출력
Console.WriteLine($"Age:{birth.Age}"); //오늘을 기준으로 계산된 나이 출력
}
}
}
출력결과
Name:서현
Birthday:1991-06-28
Age:29
'C#' 카테고리의 다른 글
9.6 인터페이스의 프로퍼티 (0) | 2019.07.22 |
---|---|
9.5 무명 형식(Anonymous Type) (0) | 2019.07.03 |
9장 프로퍼티-3.자동구현 프로퍼티 (0) | 2019.06.28 |
9장 프로퍼티 -1 public 필드의 유혹 (0) | 2019.06.28 |
8장 인터페이스 연습문제 (0) | 2019.06.26 |