<Class 코딩창>
* Class 는 설계도다.
* 추가한 Class 코딩창에서의 코딩내용.
namespace 고양이
{
public class Cat
{
int Age;
string Name;
int Happiness=50;
* 변수 선언
public Cat(string Name, int Age)
{ this.Name = Name;
this.Age = Age; }
* 이렇게 따로 정해주지 않으면, 본 프로젝트 코딩창에 자동으로 생성자가 만들어짐.
this는 Class 자체변수를 의미.
Name=Name 같은 변수를 사용했음에도 this로 인하여
클래스내와 밖의 변수로 구별이 됨.
public void Play()
{
Happiness = Happiness + 10;
if (Happiness > 100)
Happiness = 100;
}
public void Feed()
{ Happiness = Happiness + 5;
if (Happiness > 100)
Happiness = 100;
}
public void Down()
{ Happiness = Happiness - 30;
if (Happiness < 0)
Happiness = 0;
}
* 행동에 대한 행복도 증감 함수 생성.
public string Express()
{
string Message = "";
if (Happiness >= 100)
Message = "기분 너무 좋아냥!! ^_^";
else if (Happiness >= 80)
Message = "행복해냥 ~_~";
else if (Happiness >= 60)
Message = "졸리다 냥 ~ ㅅ ~";
else if (Happiness >= 40)
Message = "으어어 기분이 좋지 않다 냥....-_-";
else if (Happiness >= 20)
Message = "날 화나게 하지 마라 냥!! ㅡ_ㅡ^";
else if (Happiness <= 0)
Message = "꾸아아아악냐냐냐냐아아앙";
return Message;
* 행복도 수치에 따른 메세지 내용.
}
}
}
<본 프로젝트 코딩창>
namespace 고양이
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Cat Mycat = new Cat("소담", 2);
* Class에서 변수 선언 방법.
new는 메모리할당역할로 Class에서 변수를 지정해주지 않았다면 new Cat();으로 자동 생성이 됨.
private void button1_Click(object sender, EventArgs e)
{
CatScreen.Text = "안녕하냥, 나는 2살 고양이 소담이라한다냥";
}
private void button2_Click(object sender, EventArgs e)
{
Mycat.Feed();
CatScreen.Text = Mycat.Express();
}
private void button3_Click(object sender, EventArgs e)
{
Mycat.Play();
CatScreen.Text = Mycat.Express();
* 버튼을 눌렀을 때, Class에 저장된 함수를 사용하여 CatScreen.Text로 메세지를 표시함.
}
private void timer1_Tick(object sender, EventArgs e)
{
Mycat.Down();
CatScreen.Text = Mycat.Express();
* 타이머 Effect.
}
}
}
우리 소담이는.. 까다로운 고양이라 2초마다 행복도가 대폭 내려간다....ㅎㅎ
<Point>
1. 접근제한자
public - 어디서 누구나 접근, 수정 가능.
private - 해당 class(설계)에서만 수정 가능. 그 외에는 접근 불가.
(ex. 밥솥을 예로 들었을 때, 온도를 조절하는 함수를 굳이 공개하지 않음. 필요 없는 정보는 공개하지 않아 예외 및 버그 수정에 용이하며 여러 가지로 효율적.)
internal - Class에서만 사용 되며, Class에서 앞을 공백으로 두면 자동으로 internal로 설정.
본 프로젝트 파일과 class파일에서만 접근 가능. (외부에서는 불가능)
2. dot 연산자.
Class.Method() ------------------- 예를 들어 Cat.Play();
3. this 키워드
4. class 변수 선언 방법 (생성자)
private Cat Mycat = new Cat();
Class에서 변수를 지정해주지 않았다면, 위처럼 자동 생성.
new 는 메모리 할당 역할.
'개발자가 되어보자..공부공부 > 개발 일지' 카테고리의 다른 글
C# 유니티 공부 2 - 마우스/키보드 입력, 오브젝트 수평/수직 이동 (0) | 2022.12.03 |
---|---|
C# 유니티 공부 1 - 게임오브젝트 흐름 단계 (1) | 2022.12.03 |
C# 문법 복습2. (Class, 생성자, 접근제한자, 속성, 상속, as/is 키워드) (0) | 2022.12.02 |
C# 문법 복습 1. (변수, 형변환, 조건문, 함수 선언, 반복문, 배열) (0) | 2022.12.02 |
계산기 코딩 (Visual Studio 2019, C#) (0) | 2022.11.30 |
댓글