클래스?
사용자 정의 형식
객체를 생성하기 위해 변수와 메서드를 정의하는 틀
객체?
클래스로부터 생성된 메모리에 저장된 값
객체는 고유한 속성을 가지며 클래스에서 정의한 기능을 수행
클래스 정의하는 방법
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 |