码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • .net技术----类和对象


    类和对象

    • 前言
    • 面向对象概念
      • 继承——代码的重用
      • 多态性
      • 类(class)
      • 声明类的基本语法
      • 类的访问修饰符
      • 创建对象——以类为模板
      • 分部类
    • System.Object类和通用方法
      • 目的:
    • 对象的生命周期
    • 总结


    前言

    • 面向对象的基本概念

    • 类的声明

    • 创建和使用对象

    • 分部类的概念和使用

    • System.Object类和通用方法

    • 对象的生命周期

    面向对象概念

    • 对象(object)
    • 从概念层面讲,就是某种事物的抽象(功能)

    在这里插入图片描述

    • 对象封装了数据和代码(数据和程序)

    • 封装

    • 是把客观事物抽象并封装成对象,即将数据成员、属性、方法和事件等集合在一个整体内

    继承——代码的重用

    是允许使用现有类的功能,并在无需重新改写原来的类的情况下,对这些功能进行扩展

    被继承的类称为“基类”、“父类”或“超类”;通过继承创建的新类称为“子类”或“派生类”

    与C++不同,C#语言一个子类只能有一个基类(单一继承),但允许实现多个接口

    多态性

    • 是指同样的消息被不同类型的对象接收时导致完全不同的行为

    • 抽象类与接口

    • 图形绘制例子

    类(class)

    • C#语言的核心

    • C#的一切类型都是类,所有的语句都必须位于类内

    • 类是一个数据结构,引用数据类型

    • 定义数据类型的数据(字段)和行为(方法和其他函数成员)

    • 对象是基于类的具体实体,有时称为类的实例(instance)

    声明类的基本语法

    [特性]
    [类修饰符][partial] class 类名 [类型形参] [: 基类或接口[类型形参约束]]
    {
    类体
    }[;]

    public class Person
      {
    	public String name; protected int age; //姓名(public)、年龄(protected)
                          public Person() 
                          {//不带参数的构造方法
    	    this.name = "未知"; this.age = 0;
    	}
    	public Person(String name, int age)
                          { //带2个参数的构造方法
    	    this.name = name; this.age = age;
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    类的访问修饰符

    用来控制所修饰成员的可访问域,实现数据和代码的隐藏

    在这里插入图片描述

    创建对象——以类为模板

    类名 对象名 = new 类名([参数表]);

    访问对象成员
    类的对象使用“.” 运算符来引用类的成员

    变量 = 对象名.成员变量;
    对象名.方法 ([参数表]);

    分部类

    • 分部类型(partial type)
    • 可以将类(以及结构和接口)划分为多个部分,存储在不同的源文件中,以便于开发和维护

    在这里插入图片描述

    • 当类的源码十分庞大或需要不同程序员同时进行维护时
    • 当使用继承开发工具源代码生成器时,将计算机生成的类型部分和用户编写的类型部分互相分开,以便更容易地扩充工具生成的代码
    // PartialTest.cs
    public class PartialTest1
    {
       protected string name; private int x;
       public void f1() { }
       public void f2() { }
       class Inner  
       {
           int y; int z;
       }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    // PartialTest1_1.cs
    public partial class PartialTest1
    {
       protected string name;
       public void f1() { }
       partial class Inner  
       {
           int y;
       }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    //PartialTest1_2.cs
    public partial class PartialTest1
    {
       private int x;
       public void f2() { }
       partial class Inner  
       {
           int z;
       }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    System.Object类和通用方法

    • System.Object类型是C#编程语言的类层次结构的根类型

    • 所有的类型都隐含地最终派生于System.Object类

    • Object数据类型保存引用对象的地址,默认值为null

    目的:

    • 可使用object引用绑定任何类型的对象
    • Object类型执行许多基本的一般用途方法:Equals(),GetHashCode(),GetType()和ToString()
      【例6.10】System.Object类示例

    对象的生命周期

    • 三个阶段:对象的创建、对象的使用、对象的销毁

    • 创建对象后,可以访问对象的成员(即使用对象)

    • CLR使用垃圾回收器(GC)机制来销毁对象,大大减少程序员销毁对象的工作

    总结

  • 相关阅读:
    Java继承的三个特点
    day14ARP协议、路由原理、ARP实验、ARP防御、2003虚拟机如何关闭定时锁屏
    R语言计算data.table数据中指定数值变量大于一个固定值、另外两个分组变量的交叉分组对应的统计值(中位数)最小的分组、中位数最小的那个分组
    【Python】模块和包
    IF:82+ 基于 scRNA-seq 研究肺肿瘤微环境中基质细胞的表型塑造
    【技术积累】Python中的Pandas库【二】
    玩机搞机-----安卓全机型刷机卡fastboot模式解决方法与故障解析
    HBR推荐 丨验证决策、回归产品——2022年企业需要适应这两大转变
    ES日期时间格式化参数集锦
    Linux操作-3之uniq,wc,tr命令
  • 原文地址:https://blog.csdn.net/weixin_51422230/article/details/127689379
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号