클래스?

 

사용자 정의 형식

 

객체를 생성하기 위해 변수와 메서드를 정의하는 틀

 

객체?

 

클래스로부터 생성된 메모리에 저장된 값

 

객체는 고유한 속성을 가지며 클래스에서 정의한 기능을 수행

 

 

클래스 정의하는 방법

 

1. class 키워드 적고

2. 고유한 이름 적기

3. 블록의 쌍

ex) class Car {}

 

자동차 이름을 속성으로 정희하는 방법

 

클래스안에 변수를 정의

class Car

{

string name

}

 

자동차 기능을 정의 => 정면으로 이동

 

1. 이름짓기 => MoveForward

2. void 붙여 주기

3. () 붙여주기

4. 불록을 쌍으로 만들기

void MoveForWard()

{

}

 

자동차 클래스 내부에 작성해야 한다.

 

속과 기능이 정의된 자동차 클래스

 

class Car <----자동차 클래스

{

string name; <----자동차 이름을 정의할 변수

void MoveForward() <-------앞으로 이동하게 하는 메서드

{

}

}

 

자동차 객체 만들기

 

new 키워드를 적고

클래스명을 적기

스괄호를 열고 닫기

세미클론을 적어주면 완성

new Car();

 

자동차 객체에 이름 설정하기

 

public을 붙이자 public string name;

 

생성된 자동차 객체를 변수에 할당

Car car = new Car();

 

car변수에 .을 찍어주고 => 클래스 속성 또는 메서드에 접근 할 수 있게 해준다.

속성명을(name => 클래스 내부의 변수) 적어주고

클래스 내부에 정의된 변수에 값 할당 => car.name = "싼타페";

 

생성된 자동차 객체의 이름이 싼타페로 설정됨

Car car = new Car();

car.name = "싼타페";

Console.WriteLine(car.name);

 

 

 

자동차 객체 움직이기

car에 .을 찍고

클래스에 정의된 메서드 호출 => car.MoveForward();

 

 

 

클래스 파일로 생성하기

 

 

클래스는 사용자 정의 형식
객체를 만들고 싶다면 new 키워드 사용
생성된 객체는 값이다
이 값을 인스턴스라고 부른다.

 

맴버 => 맴버 변수 + 맴버 메서드

 

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

namespace Step30
{
    internal class Car
    {
        public string name; //속성, 필드, 맴버 변수

        public void MoveForward() //맴버 메서드
        {
            Console.WriteLine("{0}가 전진합니다.", name);
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step30
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //Car 인스턴스를 담는 변수 선언
            //변수타입 변수명
            //자동차 (Car)인스턴스를 할당할 예정이므로
            //변수 타입은 Car

            //변수 선언
            Car car;

            //변수에 값 (Car 클래스의 객체(인스턴스)) 할당
            // = 는 같다라는 뜻이 아니라 오른쪽 값을 왼쪽 변수에 할당하는 연산자
            car = new Car();

            //car변수의 name 속성(맴버 변수)에 값 할당
            //자동차 이름 설정하기
            //car 변수 이름을 적고 속성명(name)을 적기
            //다음과 같이 에러 메시지가 보이면 읽기
            //보호 수준 때문에 엑세스 할 수 없다
            //name 속성은 현재 private이기 때문
            //name 속성의 접근 제한자를 public으로 변경하고
            // 값을 할당
            //문자열 값을 할당
            car.name = "싼타페";

            //car 변수에 .을 찍고 클래스에 정의되어 있는
            //메서드 호출
            //보호수준 때문에 엑세스 할 수 없다는 에러 메시지
            //메서드의 접근제한자를 private => public으로 변경
            car.MoveForward();
            //컨트롤 + f5를 눌러 실행

            //새로운 Car객체를 생성하고
            //새 변수에 할당
            Car car2 = new Car();
            //속성을 설정
            car2.name = "쏘렌토";
            //메서드 호출
            car2.MoveForward();
            //실행

            //클래스로부터 생성된 인스턴스는 독립적
        }
    }
}

 

 

'Study > C#' 카테고리의 다른 글

[C#] 맴버변수와 지역변수  (0) 2024.05.29
[C#] 생성자 메서드  (0) 2024.05.29
[C#]메서드 반환타입  (0) 2024.05.28
[C#] 메서드 매개 변수  (0) 2024.05.28
[C#] 메서드 정의 및 호출  (0) 2024.05.28

+ Recent posts