C#/실습으로 다지는 C#

[009] C# 학생 클래스 정의하기 - 캡슐화 실습

언제나 휴일 빅데이터 언제나휴일 2020. 4. 7. 08:29
반응형

실습 개요

학생 클래스
    멤버 필드
        아이큐
        매력
        번호
        이름
        가장 최근에 부여한 번호
    멤버 메서드
        생성자
        공부하다
        춤추다
        노래하다
        ToString 재정의
    멤버 속성
        get은 public, set private

클래스 다이어그램

학생 클래스 다이어그램

소스 코드

using System;

namespace 캡슐화_실습___학생_클래스_정의하기
{
    class Student//학생 클래스
    {
        #region 멤버 필드
        int iq;//    아이큐
        int cp;//    매력
        readonly int num;//    번호
        string name;//    이름
        static int lastnum;//    가장 최근에 부여한 번호
        #endregion
        #region        //멤버 메서드
        public Student(string name)//    생성자
        {
            this.name = name;
            lastnum++;
            num = lastnum;
        }
        //    공부하다
        public void Study(int tcnt)
        {
            Console.WriteLine("{0}번 {1}학생 {2}횟수 공부하다.", num, name, tcnt);
            iq += tcnt;
        }
        //    춤추다
        public void Dance(int tcnt)
        {
            Console.WriteLine("{0}번 {1}학생 {2}횟수 춤추다.", num, name, tcnt);
            cp += tcnt;
        }
        //    노래하다
        public void Sing(int tcnt)
        {
            Console.WriteLine("{0}번 {1}학생 {2}횟수 노래하다.", num, name, tcnt);
            iq += tcnt / 2;
            cp += tcnt / 2;
        }
        //    ToString 재정의
        public override string ToString()
        {
            return string.Format("번호:{0} 이름:{1}", num, name);
        }
        #endregion
        #region//멤버 속성
        //    get은 public, set private
        public int IQ
        {
            get
            {
                return iq;
            }
            private set
            {                
                iq = value;
            }
        }
        public int CP
        {
            get
            {
                return cp;
            }
            private set
            {
                cp = value;
            }
        }
        public int Num
        {
            get
            {
                return num;
            }
        }
        public string Name
        {
            get
            {
                return name;
            }
            private set
            {
                name = value;
            }
        }
        public static int LastNum
        {
            get
            {
                return lastnum;
            }
        }
        
        #endregion
    }
}
//http://ehpub.co.kr
//실습으로 다지는 C#
//9. 캡슐화 실습 - 학생 클래스 정의하기
using System;


namespace 캡슐화_실습___학생_클래스_정의하기
{
    class Program
    {
        static void Main(string[] args)
        {
            Student stu1 = new Student("홍길동");
            Student stu2 = new Student("강감찬");
            Console.WriteLine(stu1);
            Console.WriteLine(stu2);

            stu1.Study(3);
            Console.WriteLine("번호:{0} 이름:{1} 아이큐:{2} 매력:{3}", stu1.Num, stu1.Name, stu1.IQ, stu1.CP);
            stu1.Dance(4);
            Console.WriteLine("번호:{0} 이름:{1} 아이큐:{2} 매력:{3}", stu1.Num, stu1.Name, stu1.IQ, stu1.CP);
            stu1.Sing(6);
            Console.WriteLine("번호:{0} 이름:{1} 아이큐:{2} 매력:{3}", stu1.Num, stu1.Name, stu1.IQ, stu1.CP);

            Console.WriteLine("가장 최근에 부여한 학생 번호:{0}", Student.LastNum);
        }
    }
}

 실행 결과

번호:1 이름:홍길동
번호:2 이름:강감찬
1번 홍길동학생 3횟수 공부하다.
번호:1 이름:홍길동 아이큐:3 매력:0
1번 홍길동학생 4횟수 춤추다.
번호:1 이름:홍길동 아이큐:3 매력:4
1번 홍길동학생 6횟수 노래하다.
번호:1 이름:홍길동 아이큐:6 매력:7
가장 최근에 부여한 학생 번호:2

 

 

[실습으로 다지는 C#] 9. 캡슐화 실습 – 학생 클래스 정의하기 – 언제나 휴일

 이번 강의에서는 캡슐화 실습을 해 봅시다.   캡슐화는 여러 개의 멤버를 하나의 형식으로 묶는 과정을 말합니다. 이번 실습에서는 학생 클래스를 정의하는 실습을 해 보기로 할게요.  실습할 학생 클래스의 멤버는 다음과 같아요. 학생 클래스 멤버 필드 아이큐 매력 번호 - 읽기 전용, 순차 부여 이름 가장 최근에 부여한 번호 - 정적 멤버 멤버 메서드 생성자(이름) 공부하다(횟수) 춤추다(횟수) 노래하다(횟수) ToString 재정의 멤버 속성 get은 p

ehpub.co.kr

 

반응형