美文网首页
03_C#学习_封装和类

03_C#学习_封装和类

作者: 乖薯宝 | 来源:发表于2019-03-06 16:29 被阅读0次

--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#学习_封装和类

    --2019-03-06-- 软件与快捷键 快捷键软件:visual studio 2017F1: 按键打...

  • Python 多态

    仅用学习参考 目标 多态 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中定义类...

  • 使用swift 做一个简单的录音器封装类

    最近在用swift 做一个录音的项目,中间学习了一些语法 , 现在封装了录音类 ,和大家分享学习一下。录音封装类主...

  • iOS 语言三大特性

    封装 、 继承、多态OC学习篇之---类的三大特性(封装,继承,多态) - Android应用安全防护和逆向分析-...

  • Java-输入和封装类(2)

    输入和封装类 一、封装类 装箱:是从基本类型转化为封装类的过程称之为装箱 拆箱:数据或是变量从封装类转化为基本类型...

  • 面向对象的三大特性

    封装 继承 多态 封装 封装是面向对象的特征之一,是对象和类概念的主要特性。也就是把客观事物封装成抽象的类,并且类...

  • Android开发学习——Day8(Java基础知识二&实战:扑

    学习目的 1.学习数组的定义和输出 2.理解类、对象、成员变量和方法的概念 3.了解类的封装 4.实战:扑克游戏 ...

  • 02-谈谈面向对象的三大特征

    封装,继承,多态 封装 类,封装了数据(属性)和行为(方法) 狭义的封装:就是创建一个类,属性私有化,提供gett...

  • Python:8.类和实例

    类和实例 数据封装

  • Python封装和继承

    一、封装【private】 1.概念 广义的封装:函数和类的定义本身,就是封装的体现狭义的封装:一个类的某些属性,...

网友评论

      本文标题:03_C#学习_封装和类

      本文链接:https://www.haomeiwen.com/subject/lwwtpqtx.html