C#

2020.09.01 - C# 클래스 선언, 생성자, 접근제한자

J_Bin 2020. 9. 1. 02:07

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

namespace CuteCat
{
    // 고양이를 정의하는 설계도 = class Cat
    public class Cat           // class의 접근제한자 : internal(아무것도 적지않으면)
                               // internal은 Cutcat이라는 namespace안에서만 작동가능하다. > 반대 : public
    {

        public String Name;     // private : 이 클래스 내부에서만 사용가능
        public int Age;         // public : 어디에서나 사용가능
                                // 아무런 제한자를 적지않으면 private이지만 명시를 해주는 것이 좋다.
        private int Happiness = 50;


        // 생성자 생성(pulbic)
        public Cat(string name, int age)
        {
            this.Name = name;
            this.Age = age;
            
        }






        // 고양이의 행위 play, eat, Express
        public void Play()
        {
            Happiness += 10;

            if (Happiness > 100)
            {
                Happiness = 100;
            }
        }

        public void Eat()
        {
            Happiness += 20;

            if (Happiness > 100)
            {
                Happiness = 100;
            }
        }

        public string Express()
        {
            string message;

            if (80 <= Happiness)
            {
                message = "행복하네";
            }
            else if (60 <= Happiness)
            {
                message =  "쏘쏘하네";
            }
            else if (40 <= Happiness)
            {
                message = "보통이네";
            }
            else if (20 <= Happiness)
            {
                message = "우울하네";
            }
            else
            {
                message = "슬프네";
            }
            return Name + ": " + message;

        }

        public void GetBoard()
        {
            Happiness -= 10;

            if (Happiness < 0)
            {
                Happiness = 0;
            }
        }
    }
}

 

- Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace CuteCat
{
    public partial class Form1 : Form
    {
        // Form1 class에 Cat타입을 가지는 mycat 객체 생성
        private Cat Mycat = new Cat("범이", 2);

        public Form1()
        {
            InitializeComponent();
        }

        private void Play_Click(object sender, EventArgs e)
        {
            Mycat.Play();
            CatScreen.Text = Mycat.Express();
        }

        private void Feed_Click(object sender, EventArgs e)
        {
            Mycat.Eat();
            CatScreen.Text = Mycat.Express();

        }

        private void CatTimer_Tick(object sender, EventArgs e)
        {
            Mycat.GetBoard();
            CatScreen.Text = Mycat.Express();
        }
    }



   
}

 

- Cat.cs

 

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

2020.09.01 - Customer 클래스  (0) 2020.09.02
2020.09.01 - C#의 구조체  (0) 2020.09.01
2020.08.27(목) - C#  (0) 2020.08.27
2020.08.26(수) - C#  (0) 2020.08.26
2020.08.25(화) - C# 윈폼  (0) 2020.08.25