저녁 먹기 전에 2주차까지 강의를 다 들어서 남은 시간에 3주차 강의도 죅금 들었다!!
class Person
{
private string name;
private int age;
// 디폴트 생성자
public Person()
{
}
public Person(string newName, int newAge)
{
name = newName;
age = newAge;
}
}
static void Main(string[] args)
{
Person person1 = new Person();
Person person2 = new Person("Potato", 100);
}
class Person
{
private string name;
public Person(string newName)
{
name = newName;
}
~Person()
{
Console.WriteLine("Person 객체 소멸");
}
}
class Person
{
public string Name;
public int Age;
public void PrintInfo()
{
Console.WriteLine("Name: " + Name);
Console.WriteLine("Age: " + Age);
}
}
static void Main(string[] args)
{
Person p = new Person();
p.Name = "Potato";
p.Age = 100;
p.PrintInfo();
}
Name: Potato
Age: 100
구조체 | 클래스 |
---|---|
값 형식 | 참조 형식 |
스택에 할당 | 힙에 할당 |
값이 복사됨 | 참조로 전달 |
상속 X | 단일/다중 상속 O |
작은 크기의 데이터 저장, 단순한 데이터 구조에 적합 | 복잡한 객체 표현과 다양한 기능 제공 |
클래스 멤버로서, 객체의 필드 값을 읽거나 설정하는데 사용되는 접근자(Accessor) 메서드의 조합
객체 필드에 직접 접근 X -> 간접적으로 값을 읽거나 설정
필드에 대한 접근 제어 및 데이터 유효성 검사 가능
get : 프로퍼티의 값을 반환
set : 프로퍼티의 값을 설정
class Person
{
private string name;
private int age;
public string Name
{
get { return name; }
set{ name = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
}
Person person = new Person();
person.Name = "Potato";
person.Age = 100;
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
접근 제한자 적용 및 유효성 검사 예제
class Person
{
private string name;
private int age;
public string Name
{
get { return name; }
private set{ name = value; } // name 값 설정은 class 내부에서만 가능
}
public int Age
{
get { return age; }
set
{
if (value >= 0)
age = value;
}
}
}
자동 프로퍼티(Auto Property)
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
오늘 공부는 여기까지
끗!