본문 바로가기
개발자가 되어보자..공부공부/개발 일지

고양이 기분 표시하는 코딩 연습. (Class, 접근제한자, 생성자)

by 묭묭이와소담이 2022. 11. 30.
반응형

 

<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 는 메모리 할당 역할.

 

 

고양이 Class_Cat_221130.pdf
0.03MB
고양이_221130.pdf
0.02MB

 

 

반응형

댓글