C#基础

前言: 完全是我在学习过程中记录的笔记,只不过分享一下让很多刚开始学习.net编程的人能够很快的学会C#语言

  1. 使用面向对象

(1) 首先写一个类,来描述对象

 (2)使用这个类实例化对象

(3)使用这个对象

(1) 就是用来描述对象的模板

            1)通过特征     字段和属性

            2)行为,能力   方法

                   class Cup

                   {

                          //类的成员

                          //特征

                          public int Volume;

                          public int height;

                          public string mater;

                          //行为

                          public void PackAble()

                          {

                                 Console.WriteLine("我可以装水");

                          }

                   }

                   实例化:

                   static void Main(string[] args)

                   {

                          Cup cup = new Cup();

                          cup.Volume = 200;

                          cup.height = 15;

                          cup.mater = "玻璃";

                          cup.PackAble();

                          Console.ReadKey();

                   }

  1. 构造方法

(1) 为字段赋初值

            语法:[public] 类名(参数)

            {

                   //成员及执行方法

            }

            public void DisPlay()

        {

            Console.WriteLine("我是一个{0}ml,高为{1}Cm,用{2}材料做的杯具", volume, height, mater);

        }

            public Cup(int volume, int height, string mater)

        {

            this.volume = volume;

            this.height = height;

            this.mater = mater;

        }

            //执行

            static void Main(string[] args)

        {

            Cup cup = new Cup(300, 20, "玻璃");

            cup.DisPlay();

            Console.ReadKey();

        }

 (2)如果写类的时候没有提供构造方法,系统会自动的提供一个无参构造方法

(3)如果添加了自定义的构造方法,那么系统不会在添加无参构造方法属性

  1. 属性

(1) 就是限制字段访问并提供字段访问方法的一个数据类型

 (2)属性就是方法

 (3)get表示获取值得那个方法

 (4)set表示设置那个值得方法

         class Cup

            {

                   //字段

                   private int volume;

                   private int height;

                   private string mater;

 

                   //属性

                   public int Volume

                   {

                          get { return volume; }

                          set

                          {

                                 if (value > 0)

                                 {

                                        volume = value;

                                 }

                                 else

                                 {

                                        Console.WriteLine("容量不能小于0");

                                 }

                          }

                   }

            }

            //执行

            static void Main(string[] args)

        {

            Cup cup = new Cup();

            cup.Volume = 100;

            Console.WriteLine(cup.Volume);

            Console.ReadKey();

        }

 (5)自动属性

            等价于一个字段+get,set属性(属性中无任何逻辑处理)

            语法:public 返回类型 属性名{get;set;}

                   public string Name { get; set; }

                   执行:

                   Person p = new Person();

            p.Name = "韩迎龙";

            Console.WriteLine(p.Name);

            Console.ReadKey();

                  

 (6)属性不具备存储数据的能力,存储数据是存储在字段里面的

 (7)提供get表示可以得到字段的数据(只读属性)

 (8)提供set表示可以为字段赋值(只写属性)

 (9)提供get,set则表示可读可写属性继承

  1. 电子计算器

(1) 首先建立一个Calculator类,在这个类里面实现了计算的方法

  1. 继承

(1) 有一个学生,老师和校长做自我介绍

            1)将学生,老师和校长都有的特征先"打包"

            2)再写学生,老师和校长的时候将这个"包"导入进来

            3)通过继承来实现

            4)写一个父类

            5)再写子类的时候调用父类

            ->首先写一个父类Person,实现他们三个都有的方法

                   class Person

                   {

                          private string name;

                          private int age;

                          private char gender;

 

                          public string Name

                          {

                                 get { return name; }

                                 set { name = value; }

                          }

                          public int Age

                          {

                                 get { return age; }

                                 set { age = value; }

                          }

                          public char Gender

                          {

                                 get { return gender; }

                                 set { gender = value; }

                          }

                          public void SayHi()

                          {

                   Console.Write("你好,我是{0},今年{1}岁了,我是{2}的", name, age, gender);

                          }

                   }

            ->然后写Student类

                   class Student : Person

                   {

                          private string classname;

                          private string hobby;

                          public string Classname

                          {

                                 get { return classname; }

                                 set { classname = value; }

                          }

                          public string Hobby

                          {

                                 get { return hobby; }

                                 set { hobby = value; }

                          }

                          public void SayHello()

                          {

                                 SayHi();

                          Console.WriteLine(",我的班级是{0},我的爱好是{1}", classname, hobby);

                          }

                   }

            ->写Main函数

                   static void Main(string[] args)

                   {

                          Student stu = new Student();

                          stu.Name = "韩迎龙";

                          stu.Age = 23;

                          stu.Gender = '男';

                          stu.Classname = ".net";

                          stu.Hobby = "编程";

                          stu.SayHello();

                          Console.ReadKey();

                   }

            ->其余两个类(老师和校长基本一样)

     (2)构造方法实现传参

            public Student(string name, int age, char gender, string classname, string hobby)

        {

            this.Name = name;

            this.Age = age;

            this.Gender = gender;

            this.classname = classname;

            this.hobby = hobby;

        }

            Student stu = new Student("韩迎龙", 23, '男', ".net", "编程");

        stu.SayHello();

        Console.ReadKey();

     (3)在创建子类的时候会默认的调用父类的无参构造方法

            1)创建对象的时候构造方法的执行顺序

     (4)为什么使用继承

            1)代码重用

            2)实现多态(里氏转换原则)

     (5)继承的特征

            1)单根行

            2)传递性

            3)派生于object类型

     注释:写类的时候字段的顺序,成员方法的顺序是不用考虑的,在一个项目中类型的顺序也是不用考虑的

  1. 访问修饰符

(1) protected

            1)表示受保护的字段,在本类和子类中可以访问

     (2)this

            1)指定当前类提供的成员

            2)可以调用本类的构造方法

                   public 类名()

                   {

                          //代码1

                   }

                   public 类名(string str)

                          :this()

                   {

                          //代码1

                          //代码2

                   }

                   举例说明:

                   class MyClass

                   {

                          public MyClass()

                          {

                                 Console.WriteLine("我没有参数");

                          }

                          public MyClass(string str)

                                 : this()

                          {

                                 Console.WriteLine("我是字符串{0}", str);

                          }

                          static void Main(string[] args)

                          {

                                 MyClass mc = new MyClass("韩迎龙");

                                 Console.ReadKey();

                          }

                   }

     (3)base

            1)调用父类构造方法

            2)指定父类提供的成员

1使用类库实现方法

  (1)类名与命名空间至少有一个要记得
  (2)每次使用的时候可以添加引用即可


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值