面向对象概念

  • object 就是对某种事物的抽象
  • 抽象原则包括数据抽象和过程抽象两个方面:数据抽象就是对定义对象的属性 过程抽象就是定义对象的操作
  • 对象分装了数据和代码
  • 封装就是将数据成员属性方法和事件等集合在一个整体。也可以对于访问进行设置
  • 继承是可以避免代码的复制和相关代码的维护
  • 被继承的类称为“基类 (base class)”“父类”“超类”
  • c#一个子类只能由一个基类(单一继承),但允许有多个接口
    多态性

类的声明

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

 System;namespace ConsoleApp1
{class Program{static void Main(string[] args){Console.WriteLine("Hello World!");}}class MyHelloWorld{public void SayHello(){ Console.WriteLine("Hello World!");}}class Person{public string name;protected int age;public Person(){this.name = "未知";this.age = 0;}public Person(string name,int age){this.name = name;this.age = age;}public void Print(){Console.WriteLine("name={0},age={1}", this.name, this.age);}}
}

类的访问修饰符

  • public(公共) 访问不受限制
  • protected(受保护) 访问仅限此类或此类派生
  • internal(内部)仅限此程序
  • protected internal 兼备2和3
  • private(私有)仅限此类

创建和使用对象

  • 类名 对象 = new (生成一个实例)


  • 类的主要成员包括,描述状态的数据成员 和 描述操作的 函数成员
  • 类的成员或者静态成员 (static member ) 或者是实例成员 (instance member)

函数成员

用于提供操作类中的数据的某些功能,包括 方法 属性 构造函数 析构函数 运算符 索引器
属性
是字段的自然扩展
构造函数
是名称与类名相同的特殊方法,当类被实例化后,首先会执行构造函数
析构函数
在类名前加上 ~ 当类实力化无效时会被执行
索引器
目的是使类的实例可以按与数组相同的方式进行索引
运算符
用于定义类的实例运算操作,也可以对预定义的运算符进行重载(重新定义运算规则)

静态成员和实例成员

  • 静态成员属于类,实例成员属于对象
    
  • 静态成员必须通过类名来引用。
    一个静态字段共享同一个存储位置

this关键字
this关键字引用类的当前实例
静态成员方法中不能使用this关键字。

默认访问修饰符
类或结构的默认访问类型是internal
类中所有的成员默认为private
接口默认访问符是internal
接口的成员默认(只能)访问修饰符是public
枚举类型成员默认是public
委托 默认internal
名称空间默认为internal
只读字段
readonly
只能在声明字段时赋值或在构造时赋值
只读变量可以是任意类型

2021-03-30学习日志相关推荐

  1. 2021.03.30【2021省赛】模拟 比赛总结

    2021.03.30[2021省赛]模拟 比赛总结 地址: https://gmoj.net/senior/#contest/home/3350 T1: 神奇纸牌(uno) T2: 凌乱平衡树 (tr ...

  2. JZOJ 7036. 2021.03.30【2021省赛模拟】凌乱平衡树(平衡树单旋+权值线段树)

    JZOJ 7036. 2021.03.30[2021省赛模拟]凌乱平衡树 题目大意 给出两棵Treap,大小分别为 n , m n,m n,m,每个点的 p r i o r i t y priorit ...

  3. 2022/6/30 学习日志

    (为什么没有非线性的激活函数,网络的逼近能力就相当有限? 网络的逼近能力是指? 逼近任何函数 逼近真实值,能更好的拟合真实值 上下层节点?激活函数? 现实生活问题大部分是非线性的函数 为什么要构造这样 ...

  4. 2021.03.12——学习公司项目

    1 uni.navigateTo 保留当前页跳转 可带参跳转 uni.navigateTo({url: '/pages/login/getSms?mobile=' + this.phone}); 2 ...

  5. 《惢客创业日记》2021.03.30(周二)好朋友不挡财路

    今天一上班,做视觉的李白问我:"资金找的怎么样了?"我给他说,目前还没有着落,把上次去南方见投资机构的事和这两天找人合作的事也都告诉了他.我问他新工作开始找了吗?他说还没有开始投简 ...

  6. 7035. 2021.03.30【2021省赛模拟】神奇纸牌(uno)题解

    再度死在了这种排列组合题的大刀下 一个显然的结论:一套UNO牌在复制条件下可以打完的条件当且仅当同点数同颜色的牌连边后形成连通块 这道题只有4种颜色,所以会有两种做法 1.列出DP表达式后矩阵快速幂转 ...

  7. 2021.1.17-Robocup 2D学习日志

    2021.1.17-Robocup 2D学习日志 环境平台 比赛平台server和monitor 球员客户端client 比赛规则 自动裁判 人为干预 基本的资料 环境平台 比赛平台server和mo ...

  8. 苏嵌学习日志03 07.13

    学习日志      姓名:刘易中      日期:2018/07/13 今日学习任务 结构体.结构体和链表.内存管理.关键字union.enum.typedef等.   今日任务完成情况 (详细说明本 ...

  9. cs224w(图机器学习)2021冬季课程学习笔记8 Colab 2

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 VX号"PolarisRisingWar"可直接搜索添加作者好友讨论. 更新日志: 20 ...

  10. 2021.03.17 pokémon小游戏开发记录与周总结

    2021.03.17 pokémon小游戏开发记录与周总结 此篇仅包含部分项目代码,只是个人的学习总结. 文章目录 2021.03.17 pokémon小游戏开发记录与周总结 前言 一.前期准备 二. ...

最新文章

  1. cocos2dx 优化略记
  2. 3.2.2 快速搭建你的第一个系统所,并进行迭代
  3. Spring-AOP 通过配置文件实现 环绕增强
  4. js二维数组_Javascript数组
  5. ASP.NET Core如何在ActionFilterAttribute里做依赖注入
  6. java中属性外部化_用Java可外部化
  7. python新建一个文件夹需要重新安装模块吗_解决pycharm每次新建项目都要重新安装一些第三方库的问题...
  8. 计算机网络技术基础教学内容,计算机网络技术基础
  9. 矩阵论复习-过渡矩阵、生成子空间、表示矩阵、度量矩阵、酉空间、内积
  10. 漫画:凌晨2点,老板在工作群@了我...
  11. mongodb更新操作符$rename
  12. SAC 智能版面分析技术(structure Analysis Core )
  13. gitbook 插件 图片查看
  14. 在Colaboratory中使用ImageAI训练自己的数据集
  15. 连接服务器打印机文件名无效,局域网打印机连接时显示打印机名无效是何原因? 求教数码高手!...
  16. Android新浪微博登录
  17. linux mysql cnf_mysql在linux下查看my.cnf位置的方法
  18. 2017-2018-1 20155228 《信息安全系统设计基础》第三周学习总结
  19. CDISC的SDTMIG,3.2版翻译和学习2---第二章 SDTM基础
  20. 华擎服务器主板 稳定性,【华擎X570 Steel Legend主板使用总结】设置|性能_摘要频道_什么值得买...

热门文章

  1. kaggle猫狗大战[包含训练(25000张猫狗照片)和测试数据集(12500张猫狗照片)
  2. Annotation PK Interface
  3. msgpack java_让java版msgpack支持Object类型
  4. onscroll事件
  5. 南卡和FIIL蓝牙耳机哪个更好?国产蓝牙耳机南卡和FIIL评测
  6. git更新远程分支列表
  7. 最全的Go开发教程,超详细哦
  8. 记中美贸易导致股票涨跌
  9. matlab信号时域分析,matlab怎样对时域信号进行频谱分析
  10. (C77)[こすぷれ喫茶娘々]東方鎖宝録 汉化补丁