Machineboy空
C# Class: static Field 정적 필드, 클래스와 인스턴스 본문
객체지향 프로그래밍(OOP, object oriented programming)이란?
코드 내 모든 것을 객체(Object)로 표현하려는 프로그래밍 패러다임
- 객체(Object) : 세상의 모든 것(ex. 사람, 연필, 자동차, 파일, 모니터, 상품 주문 등)
어떻게?
객체의 주요 특징 (속성, 기능)만 뽑아내서 코드로 표현하자!
- 객체 : 사람
- 속성(데이터): 피부색, 키, 몸무게
- 기능(메소드): 걷기, 뛰기, 보기, 듣기
Class란?
객체(Object)를 만들기 위한 청사진

- 클래스(Class) : 자동차 설계도, 실체 X
- 자동차가 어떤 속성과 기능을 가져야 하는지 지정
- 속성 중에 변경가능한 것과 변경 불가능한 것을 결정
- 객체(Object) : 생산된 실제 자동차, 실체 O
- 클래스를 이용해 만든 객체는 실체를 가진다.
- 동일 클래스로 객체 3개를 만들면 이 세 객체는 서로 구분되는 고유한 실체를 가지며 저마다 메모리 공간을 차지한다.
정적 필드와 static 한정자
static : 메소드나 필드가 클래스의 인스턴스가 아닌 클래스 자체에 소속되도록 지정하는 한정자
클래스는 단 하나만 존재하지만, 인스턴스는 여러 개 존재할 수 있다.
- 어떤 필드가 클래스에 소속된다는 것은 곧 그 필드가 프로그램 전체에서 유일하게 존재한다는 것을 의미한다.
- 프로그램 전체에 걸쳐 공유해야하는 변수가 있다면 정적 필드 이용

정적 메소드와 인스턴스 메소드
- 정적 메소드 : 인스턴스를 생성하지 않아도 호출이 가능한 메소드
- 객체 내부 데이터를 이용할 일이 없는 경우
class MyClass
{
public static void StaticMethod()
{
}
}
MyClass.StaticMethod() // 인스턴스를 만들지 않고도 바로 호출 가능
- 인스턴스 메소드: 인스턴스를 생성해야만 호출이 가능한 메소드
- 객체 내부 데이터를 이용해야 하는 경우
class MyClass
{
public void InstanceMethod()
{
}
}
MyClass obj = new MyClass();
obj.InstanceMethod(); // 인스턴스를 만들어야 호출 가능
this 키워드, this() 생성자
this 키워드: 객체 자신을 지칭하는 키워드
- 객체 외부: 객체의 필드나 메소드에 접근할 때는 객체의 이름 사용
- 객체 내부: 자신의 필드나 메소드에 접근할 때는 this 키워드 사용
this() : 자기 자신의 생성자
using System;
public class SpaceAge
{
// 인스턴스 필드
private double age;
public SpaceAge(int seconds)
{
// this를 통해 class가아닌 class 모양의 객체에 접근하는 것.
this.age = seconds / 31557600.0;
}
// 인스턴스 메소드
public double OnEarth()
{
return this.age;
}
}
'언어 > C#' 카테고리의 다른 글
LINQ (0) | 2025.01.23 |
---|---|
Visual Studio 기본 환경 세팅 (0) | 2025.01.23 |
C# DateTime 시간, 날짜 다루기 - DateTime.Parse(), TimeSpan.FromSecond(), DateTime.Add(), DayOfWeek (0) | 2025.01.17 |
C# Class 기초,필드, 메소드, 멤버, 접근자, 생성자, 예제 등 (0) | 2025.01.16 |
C# if문, switch문, for문, forEach문, while문 (0) | 2025.01.16 |