为了账号安全,请及时绑定邮箱和手机立即绑定

用C#实现封装

难度入门
时长 2小时25分
学习人数
综合评分9.63
277人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.6 逻辑清晰
  • 访问修饰符:

    public 公共的 :可以在其他类中访问

    private 私有的:不能在其他类中访问

    (如没有设置访问修饰符,默认为private)


     

    查看全部
  • 对象和类:

    类:小朋友类

    对象:小朋友小明

    静态特征: 字段 属性

    动态行为: 方法

    https://img1.sycdn.imooc.com//5c910e030001509b09640635.jpg

    https://img1.sycdn.imooc.com//5c910e03000104f110410583.jpg


    查看全部
  • 珍妮甚是讨厌,五颜六色的小怪物有什么好看的

    c1 c2这两个对象都指向张小明,张小明一旦改变两个对象都要改变

    查看全部
  • this表示当前对象

    可以访问当前对象的属性,方法等


    查看全部
    1 采集 收起 来源:C#中this关键字

    2019-03-13

  •  Child child = new Child();//调用构造方法(构造方法的作用:为属性赋值)
                Console.WriteLine("我的名字是{0}",child .Name );
                //如果没有显示定义构造方法,则会有一个默认的无参数的构造方法。
                //如果显示定义了构造方法(不管是有参无参),则没有默认构造方法。
                //只能用new 方法名()的形式调用构造方法。
                //1、构造方法通常声明位public(如果需要的话也可以是private),
                //2、构造方法没有返回值类型,
                //3、构造方法名字必须和类名相同。

    查看全部
  • 方法的返回值类型不再是void,而是与放回的值相同的类型,如int、string等等。

    方法的最后用return关键字返回结果。


    声明一个和方法返回值相同类型的变量来接收结果,使用赋值语句接收:


    最后的思考题现象:main中的double sum,默认0.0,接收方法中的int sum计算后得到10,传回:低精度--》高精度,double sum=10.0,打印为10。

    查看全部
  • 1.构造方法的作用:为属性赋值

    类中属性实例化后默认的初始值为构造方法所赋

    2.如果没有显示定义构造方法,则会有一个默认的无参数的构造方法

    如果显示定义了构造方法,则没有默认的构造方法

    3.只能用new 方法名()的形式调用构造方法

    4.构造方法通常声明为public,也可以用value

    5.构造方法没有返回值类型,不写void也不写int等返回值类型

    6.构造方法必须与类名相同

    查看全部
  • 枚举 enum + 属性命 关键字 + 枚举名 枚举属性底层下标0开始与数组一样
    查看全部
  • 用return带回方法的返回值需将void改成返回值的类型,void代表方法没有返回值  设置返回值 int sum

    查看全部

  • ////porgram

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;


    namespace xuexi1

    {

        class Program

        {

            static void Main(string[] args)

            {

                /*  Child xiaoMing = new Child();//名+对象名+关键字+类。实列化Child类的对象

                  xiaoMing.Name = "马晓明"; //对象名.字段名=赋值

                  //xiaoMing.Sex = "男";

                  xiaoMing.Age = 6;

                  //xiaoMing.Height = 120;

                  Console.WriteLine("我叫" + xiaoMing.Name + ",今年" + xiaoMing.Age + "岁。");

                  xiaoMing.PlayBall();//对象名.方法名。调用踢球的方法 */



                Child child = new Child(); //声明和实列化类的对象

                                           /*child.PlayBall();//对象名.方法名   调用方法

                                             child.EatSugar("水果糖");//方法的实参,sugar="榴莲糖"  隐藏了赋值语句*/

                child.EatSugar("牛奶糖");

                child.EatSugar(4);

                child.EatSugar("水果", 5);




            }

        }

    }


    ////child.cs

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;


    namespace xuexi1

    {

        class Child

        {//是访问修饰符 public公共的 可访问可修改   privte私有的,隐藏(默认的)

            private string _name;//姓名

            public string Name //属性 +首字母大写名字

            {

                get { return _name; }  //读访问器

                set { _name = value; }//写访问器

            }


            public string Sex { get => sex; set => sex = value; }

            public int Age { get => age; set => age = value; }

            public int Height { get => height; set => height = value; }


            //CTRL+R+E  封装快捷键

            private string sex = "男";//性别

            private int age;//年龄

            private int height;//身高


            public void PlayBall()//方法的声明

            {//方法体 方法的实现

                Console.WriteLine("耶!我是小小C罗!");

            }

            /// <summary>

            /// 吃糖定义

            /// </summary>

            ///<param name="sugar">糖的类型(形参)</param>

            public void EatSugar(string sugar)

            {

                if (sugar == "榴莲糖")

                    Console.WriteLine("哎呀,最怕榴莲的味道了!");

                else

                    Console.WriteLine("哈哈,是我喜欢吃的糖!");

            }

            /// <summary>

            /// 吃糖 同意类中,多个方法名字相同的但参数不同(类型或数量)==重载方法调用

            /// </summary>

            /// <param name="count">糖的数量</param>

            public void EatSugar(int count)

            {

                if (count > 3)

                    Console.WriteLine("吃糖太多对牙齿不好!");

                else

                    Console.WriteLine("吃吧,吃糖糖吧");


            }

            /// <summary>

            /// 吃糖

            /// </summary>

            /// <param name="sugar">糖的类型</param>

            /// <param name="count">糖的数量</param>

            public void EatSugar(string sugar, int count)

            {

                if (sugar == "牛奶糖" && count > 2)

                    Console.WriteLine("牛奶糖不能吃太多哦!");

                else if (count > 3)

                    Console.WriteLine("糖不能吃太多了");

                else

                    Console.WriteLine("吃糖糖吧!");

            }



        }

    }


    查看全部
  • 结构是值类型,类是引用类型;

    查看全部
    1 采集 收起 来源:结构

    2018-10-23

  • return:结束方法的调用。

    如果使用if...else语句时,return写在if中的最后一句话中,并且else可以省略,并且可以去掉大括号。

    查看全部
  • 切记,块类名也要加"public".最后在项目里才能引用块的类名称。

    查看全部
  • !字符串string也是引用类型,因为它是传递地址,在同一个地方做修改。所以一处修改,处处变。
    查看全部
  • 关于封装!

    查看全部
    1 采集 收起 来源:课程总结

    2018-09-13

举报

0/150
提交
取消
课程须知
学习本课程之前,小伙伴们需要有C#语法基础,木有此项技能的童鞋们,请先移步《C#开发轻松入门》进行修炼~~
老师告诉你能学到什么?
1、类和对象的概念 2、封装的思想和实现 3、方法和构造方法 4、值类型与引用类型

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!