03_C#学习_封装和类

--2019-03-06--

软件与快捷键

快捷键
软件:visual studio 2017
F1: 按键打开msdn学习;
F5: 开始调试
.cs: 后缀
ctr+F5 : 开始运行
ctr+k;ctr+c: 注释
ctr+k;ctr+u:取消注释

封装

  1. C#规则:所有关键字都是由小写字母组成的,C#语言中,大小写是严格区分的。

  2. 封装
    作用:隐藏对象信息,留出访问接口。
    属性封装字段: 快捷键(CTRL+R+E)
    包括get: 读访问器;和set: 写访问器。
    可以对访问器作条件限制。


  3. 实例化对象--创建类名为child的类: Child xiaoming = new Child()
    类有字段、属性和方法

  • 字段: private string _name;
  • 属性:通过封装将字段定义成属性
    public string Name { get => name; set => name = value; }
  • 方法:ublic void PlayBall();
  1. 访问修饰符类
  • public 公共的:类中定义字段和方法前加public,可以在其他类中被访问
  • private 私有的:只有.NET中应用程序或库才能访问,并且是默认选项
  • protected:只能从其所在类和所在类的子类进行访问
  • internal:只有在本类中才能访问
  1. 方法的重载
    同一个类中,多个方法的名字相同但参数(类型或数量)不同。
//方法声明
public void EatSugar(string Sugar)
public void EatSugar(int count)
public void EatSugar(string Sugar, int count)
  1. 类的构造方法
  • 作用:为属性赋值
  • 如果没有定义显示的构造方法,会一个默认无参数的构造方法;如果定义了有参构造方法,则覆盖默认构造方法
  • 只能用new 方法名()的形式调用构造方法,声明通常为public
  • 构造方法没有返回值类型,方法名必须与类名相同
//调用构造方法,实例化对象
Child xiaoming = new Child( "周星星"); 
//有参数构造方法
class Child(string name)
{  
  Name = name;
  this.sex = sex; //this用在字段和形参重名
 //this 当前对象,可以调用当前类的字段和方法
}
  • 对象初始化器
    其实是调用了类的无参数构造方法,要确保类中有无参数构造方法
Child child2 = new Child {Name="周星星",Age=5};
Console.WriteLine("我叫{0},今年{1}岁了",child2.Name,child2.Age);
  1. 值类型和引用类型
值类型 引用类型
int 类 (string)
char 数组
double 接口
  • 值类型:传值,创建副本,原变量不会被修改
  • 引用类型:传地址,地址所指对象被改变,原变量所指对象也会改变
  • ref:可以变成引用类型传参(定义和调用前都加ref,对象属性不能作为形参)
  • out:用来输出结构(定义和调用前加out)
  1. 结构(struct)
    struct Dog{
        string _name;
        public string Name { get => _name; set => _name = value; }
        public void Sing()
        {
            Console.WriteLine("wangwang");
        }
        public Dog(string name)
        {
            _name = name;
        }
    }

和类的相同点:
1)结构和类一样可以定义字段、属性和方法
2)声明和实例化的代码相同,调用属性,方法的代码相同

不同点:
1)结构是值类型(类是引用类型)
2)不能给结构中字段赋初始值
3)结构中不能有自己定义的显示的无参数构造方法
4)构造方法必须给所有的字段赋值
5)结构可以不用实例化对象

  1. 枚举类型(enum)
enum Gender
{
    男,女
}

1)枚举是值类型
2)枚举中不能定义字段属性和方法
3)枚举值是从0递增的整数,赋值可以用(Gender)0


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一天 一.内联函数(inline) 函数调用的时候需要建立栈内存环境,进行参数传递,并产生程序执行转移,这些工作...
    陈果123阅读 1,145评论 0 1
  • code标签:是行内元素 1、定义: 标签, 用于表示计算机源代码或者其他机器可以阅读的文本内容。软件代码的编写...
    葶寳寳阅读 5,798评论 3 8
  • 绿山,绿水,庄稼地,我儿时的记忆。 走遍祖国大江南北,游历祖国半边江河。 我忘不了你! 家乡的绿草地。 那里有我童...
    向往春天_dffa阅读 278评论 0 3
  • 先下载 swoole-ide-helper : https://github.com/eaglewu/swoole...
    MORESIR阅读 5,661评论 0 3