3장 수영장 퀴즈 정답




지난번 3장 내용을 잠깐 되돌이켜보면 

클래스 에서 객체인스턴스화 시켜 인스턴스를 이용한다.

라는 중요한내용이었습니다. 그리고 추가로 static 메소드도 ..


그럼 인스턴스 실전으로

서로 돈을 빌려주는 친구 두명을 객체로 만들어서 돈을 이동시켜보는 예제입니다.


순서는 클래스 부터 만들고 클래스로부터 인스턴스화


class Guy

    {

        public string Name;

        public int Cash;


        public int GiveCash(int amount)

        {

            if (amount <= Cash && amount > 0)

            {

                Cash -= amount;

                return amount;

            }

            else

            {

                MessageBox.Show("돈이 없어서 줄수가 없네" + amount, Name + "Says");

                return 0;

            }

        }

        public int ReceiveCash(int amount)

        {

            if (amount > 0)

            {

                Cash += amount;

                return amount;

            }

            else

            {

                MessageBox.Show(amount + "isn't an amount i'll take",

                    Name + "says");

                return 0;

            }

        }

    }


이렇게 만들어 놓은 클래스를 폼에서

    public partial class Form1 : Form

    {

        Guy joe;

        Guy bob;

        int bank = 100;

        public Form1()

        {

            InitializeComponent();

            joe = new Guy();

            bob = new Guy();

            joe.Name = "Joe";

            joe.Cash = 50;

            bob.Name = "Bob";

            bob.Cash = 100;

        }

        public void UpdateForm()

        {

            joeCash.Text = joe.Name + " has $" + joe.Cash;

            BobCash.Text = bob.Name + " has $" + bob.Cash;

            bankCash.Text = "The bank has $ " + bank;

        }


        private void button1_Click(object sender, EventArgs e)

        {

            if (bank >= 10)

            {

                bank -= joe.ReceiveCash(10);

                UpdateForm();

            }

            else

            {

                MessageBox.Show("은행에 돈이 없음");

            }


        }


        private void button2_Click(object sender, EventArgs e)

        {

            bank += bob.GiveCash(5);

                UpdateForm();

        

        }


        }


    버튼 클릭 이벤트에서 클래스 메소드를 사용




초기화 방법을 더 설명해주는데


            joe = new Guy();

            joe.Name = "Joe";

            joe.Cash = 50;


이 부분을


            joe = new Guy(){Cash = 50, Name = "Joe"};

도 가능하다는것!!!!



그리고 연습문제로 서로 바로 주고 받기를 시킬때는?



        private void button3_Click(object sender, EventArgs e)

        {

            bob.ReceiveCash(joe.GiveCash(10));

            UpdateForm();

        }


        private void button4_Click(object sender, EventArgs e)

        {

            joe.ReceiveCash(bob.GiveCash(5));

            UpdateForm();

        }


반환값을 바로 인자로 받아서 쓰는 방법이!?!

UpdateForm 빼먹으면 폼에서 글자가 변화를 볼 수가 없어요


클래스로 객체를 만드는법 연습하는게 마지막 내용입니다~