C#封装的实现

主要知识点概括

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

主函数代码

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

namespace Csharp封装
{
    class Child
    {
        //快捷键Ctrl +R+E 快速实现封装
        string _name;

        public string Name
        {
            get { return _name; } //只读访问器
            set { _name = value; }//写访问器
        }
        int _age;

        public int Age
        {
            get { return _age; }
            set { _age = value; }
        }
        int _height;

        public int Height
        {
            get { return _height; }
            set { _height = value; }
        }
        string _sex;

        public string Sex
        {
            get { return _sex; }
            set {
                if(value=="男"||value=="女")          //对属性访问的约束条件
                _sex = value;
            }
        }
      public void play()                              //方法的声明
        {                                             // 方法的定义
            Console.WriteLine("I am play football!");
        }
      public void EatSuger(string suger)          //有参数的方法,这里suger为形参
      {
          if (suger == "榴莲糖")
          {
              Console.WriteLine("我最讨厌吃这种糖了");
          }
          else
          {
              Console.WriteLine("我喜欢这个糖");
          }
      }
      public void EatSuger(int count)                           //方法的重载(函数名可以相同,但是参数的类型不能相同)
      {
          if (count > 3)
              Console.WriteLine("糖吃多了对牙齿不好");
          else
              Console.WriteLine("吃吧,吃吧");

      }
         public void EatSuger(int count,string suger)        //方法的重载
         {
             if (count > 2 && suger == "牛奶糖")
             {
                 Console.WriteLine("这种糖不能多吃了");
                 return;                                    //结束方法的调用,不执行后面的语句,提高程序的效率
             }
             else if (count > 3)
                 Console.WriteLine("不能再吃了");
         }
         public int Add(int a,int b)
         {
             int sum = a + b;
             return sum;                                    //在方法中是用return 的作用,这个方法的作用是进行求和
                                                            //但是我们并没有直接在方法里输出求和的值,因为我们希望
                                                            //我们的方法只去完成一些特定的功能,如果加入输出结果反而
                                                            //会使我们的方法受到限制
         }
         public Child()                        /*1.构造方法通常声明为pulic
                                                2.构造方法没有返回值
                                                 3.构造方法名一般和类名相同
                                                (PS:和C++相同)
                                               */
         {
             Name = "周星星";
         }
         public Child(string name, string Sex, int age)
         {
             Name = name;
             this.Sex = Sex;            //this指向当前对象,在参数名和属性名字重名时有效解决,通常这个指针是隐藏的
             Age = age;
         }
    }

}
Child 类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Csharp封装
{
    class Program
    {
        static void Main(string[] args)
        {
            Child xiaoming = new Child();//声明和实例化对象
            xiaoming.Name = "小明";
            xiaoming.Age = 8;
            xiaoming.Sex = "男";
            xiaoming.Height = 120;
            Console.WriteLine("我叫"+xiaoming.Name+",我今年"+xiaoming.Age+"岁。");
            xiaoming.play();
            xiaoming.EatSuger("榴莲糖"); //方法的调用,“榴莲糖为实参”将这个实际参数传递给形参suger
            xiaoming.EatSuger(3, "牛奶糖");//方法的重载
            int sum;
            sum=xiaoming.Add(3, 7);            //返回值的接收
            Console.WriteLine("两个数的和是:" + sum);
            Child child = new Child();/*调用构造方法,构造方法的作用:为属性赋值。
                                       如果没有定义构造方法,则会提供一个默认的无参构造方法。
                                       如果显示了构造方法,则没有默认构造方法。
                                       构造方法的调用只能用new 方法名()的方式调用
                                       */
            Console.WriteLine("我的名字是:" + child.Name); //构造方法中已经将name的属性初始化
            Child child1 = new Child("王尼玛", "男", 11);
            Console.WriteLine("我的名字是" + child1.Name + "我是" + child1.Sex + "孩儿" + "我今年" + child1.Age + "岁");//有参构造方法的调用
            Child child3 = new Child() { Age = 7, Name = "小明" };//对象初始化器,必须要有无参函数的一个定义,否则不能使用
        }

    }
}
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值