zoukankan      html  css  js  c++  java
  • C#中的类与对象

    :说白了就是类型,是对具体事物的一种抽象总结。

    对象:一个具体的事物。

    类与对象的关系,类实例化就会得到一个对象,同样一个对象也应该属于某一个类。例如张三这个人,他是一个对象,同时他属于人类,在程序中要得到张三的信息应该怎么做呢,首先我们可以定义一个人类的类,然后用这个类型去创建张三这个具体的人(对象)。

    1 //定义了一个人类的类型
    2 public class Person
    3 {
    4     
    5 }
    6 //利用人类这个类型创建一个具体的人,他的名字叫zhangsan
    7 Person zhangsan = new Person();

     但是人我们都知道,他有身高、体重、年龄等,这些我们可以把它归结为人类的一些属性,不仅张三有身高体重,李四也有身高体重这些属性。下面是我们在类中定义这些属性,这些属性就是用于描述对象的特征的。

     1 /// <summary>
     2 /// 人类
     3 /// </summary>
     4 public class Person
     5 {
     6     /// <summary>
     7     /// 名字
     8     /// </summary>
     9     public string Name { get; set; }
    10     /// <summary>
    11     /// 身高
    12     /// </summary>
    13     public int Height { get; set; }
    14     /// <summary>
    15     /// 体重
    16     /// </summary>
    17     public int Weight { get; set; }
    18     /// <summary>
    19     /// 年龄
    20     /// </summary>
    21     public int Age { get; set; }
    22 }

    当类中定义了这些属性之后,利用人类Person类创建对象就可以为对象赋值。例如,上面的张三这个人,他的名字是张三,身高176厘米,体重65Kg,年龄24岁

    1 Person zhangsan = new Person();//创建张三这个对象
    2 //为张三这个对象的属性赋值
    3 zhangsan.Name = "张三";
    4 zhangsan.Height = 176;
    5 zhangsan.Weight = 65;
    6 zhangsan.Age = 24;

    类中除了包含这些静态属性以外呢,还可以有一些动态的动作可以执行,即方法。例如,人可以打招呼,人还可以玩耍。

     1 /// <summary>
     2 /// 人类
     3 /// </summary>
     4 public class Person
     5 {
     6     #region 属性
     7     ……
     8     #endregion
     9 
    10     /// <summary>
    11     /// 打招呼
    12     /// </summary>
    13     public void SayHi()
    14     {
    15     //打招呼
    16     }
    17     /// <summary>
    18     /// 玩耍
    19     /// </summary>
    20     public void Play()
    21     {
    22     //玩耍
    23     }
    24 }

    张三打招呼和玩耍:

    1 zhangsan.SayHi();//打招呼
    2 zhangsan.Play();//玩耍

    总结:

    类是用户自定义的一种数据类型,是对一组具有相同属性或行为的对象的抽象和描述,定义了处理哪些数据(字段属性等)以及一些处理数据的行为(方法);

    对象是由类的实例化而来,类为动态创建的对象提供了定义,对象是类的一个具体的实例;

    同一个类的对象都具有相同的存储结构和行为功能,但具体的每一个对象的存储数据和行为动作可以不一样。

  • 相关阅读:
    2018全球最强物联网公司榜单揭晓
    物联网
    kalman滤波
    自动驾驶
    CAN总线基础
    Linux系统下x86和ARM的区别有哪些?
    算法课笔记系列(七)—— 平摊分析Amortized Analysis
    深入理解Linux内存分配
    linux内核--自旋锁的理解
    DMA(直接存储器存取)
  • 原文地址:https://www.cnblogs.com/njabsky/p/9773245.html
Copyright © 2011-2022 走看看