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


你可能感兴趣的:(03_C#学习_封装和类)