先看一下创建一个新项目时的基本格式

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq; //引用的命名空间
  4. using System.Text;
  5. namespace ConsoleApplication1        //命名空间 (程序集) ConsoleApplication1 为命名空间名称
  6. {
  7. class Program               //类 , Program 是类名
  8. {
  9. static void Main(string[] args) //函数
  10. {
  11. }
  12. }
  13. }

1、命名空间

  一个解决方案下可以有多个项目,每个目就是一个命名空间(程序集),在每个项目下面添加的文件引用不同命名空间下的类时,将命名空间名称添加到主页的引用命名空间里

  1. namespace ConsoleApplication1.wahaha //命名空间

  2. using ConsoleApplication1.wahaha;//引用命名空间是的格式

  2、类

  一个命名空间下可建多个类,一个类文件一般放一个类,可对类进行封装   

  1. class Program //program 类 是程序的主入口,各程序模块的汇总

 

3、访问修饰符  

  位于“类”名前方

  1. public    // 公共的 -- 访问权限是最高的
  2.  
  3. private   //私有的 -- 只能在类的内部进行访问
  4.  
  5. internal   //默认的 -- 当前命名空间(程序集)下可以访问
  6.  
  7. protected //被保护的 -- 当前类及它的派生类中可以访问

4、封装

  对成员变量进行封装 

 定义类 ——成员变量——属性 

  1. class 类名
  2. {
  3. private 数据类型 _名称; //成员变量,字段 --是私有的
  4.  
  5. public 数据类型 名称 //属性
  6. {
  7. get{ return _名称; }
  8.  
  9. set{ _名称 = value; }
  10. }
  11. }

使用类,在min函数中引用 (实例化对象)

  类名   对象  =  new   类名();

  1. student a = new student( );

例1、 对成员变量的封装

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ConsoleApplication1
  7. {
  8. class Student
  9. {
  10. private string _Code; //成员变量
  11.  
  12. public string Code
  13. {
  14. get { return _Code; }
  15. set { _Code = value; }
  16. }
  17.  
  18. private string _Name;
  19.  
  20. public string Name
  21. {
  22. get { return _Name; }
  23. set
  24. {
  25. if (value == "")
  26. _Name = "<暂无>";
  27. else
  28. _Name = value;
  29. }
  30. }
  31.  
  32. private DateTime _Birthday;
  33.  
  34. public DateTime Birthday
  35. {
  36. get { return _Birthday; }
  37. set { _Birthday = value; }
  38. }
  39.  
  40. public int Age
  41. {
  42. get
  43. {
  44. int end = ;
  45.  
  46. end = DateTime.Now.Year - _Birthday.Year;
  47.  
  48. return end;
  49. }
  50. }
  51.  
  52. private decimal _Score;
  53.  
  54. public decimal Score
  55. {
  56. get { return _Score; }
  57. set
  58. {
  59. if (value > || value < )
  60. _Score = ;
  61. else
  62. _Score = value;
  63. }
  64. }
  65.  
  66. }
  67. }

// 属性的类型与字段的类型可以不同

// get  set  根据需要可以只有一个

例2、对方法封装

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ConsoleApplication1
  7. {
  8. public class Math1
  9. {
  10. public int JiaFa(int a, int b)
  11. {
  12. return a + b;
  13. }
  14. }
  15. }
  16. ————————————————————-----
  17. ——对方法的引用
  18. Math1 m = new Math1 ( );
  19.  
  20. m.JiaFa( , );

5、继承

子类:父类 (子类继承父类)

  父类 (基类),子类 (派生类 超类)

  一个子类只能有一个父类,子类可以继承全部父类中的public的方法和属性

案例 

  1. namespace ConsoleApplication3
  2. {
  3. public class Fly
  4. {
  5. public virtual string Flying()
  6. {
  7. return "我会飞!"; —— 父类
  8. }
  9. }
  10. }
  11. ——————————————————
  12.  
  13. namespace ConsoleApplication3
  14. {
  15. public class Bird : Fly
  16. { ——子类
  17.  
  18. }
  19. }

6、多态

  类的多种形态

有了继承才有了多态

  1. virtual   //虚方法 -- 写在访问修饰符之后(成员变量中),
  2.  
  3. override  // 重写函数体 -- 可以被子类进行重写,只能重写函数体

案例 

  1. namespace ConsoleApplication3
  2. {
  3. public class Fly
  4. {
  5. public virtual string Flying()
  6. {
  7. return "我会飞!";
  8. }
  9.  
  10. }
  11. }
  12. ————————————————
  13. namespace ConsoleApplication3
  14. {
  15. public class feiji : Fly
  16. {
  17. public override string Flying()
  18. {
  19. return "屁股喷火就能飞!";
  20. }
  21.  
  22. }
  23. }

C#面向对象 (访问修饰符、封装、继承、多态)的更多相关文章

  1. JAVA面向对象-----访问修饰符

    访问修饰符是用来控制类.属性.方法的可见性的关键字称之为访问修饰符. 1.public 一个类中,同一包中,子类中,不同包中 2.protected 一个类中,同一包中,子类中 3.default 一 ...

  2. PHP面向对象访问修饰符的基本了解

    l 文档的介绍: 对属性或方法的访问控制,是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的.被定义为公有的类成员可以在任何地方被访问.被定义 ...

  3. 1.Java基础-面向对象编程思想(封装继承多态接口)

    封装: 1.定义:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别. 2.封装的目的是:增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的 ...

  4. java面向对象(封装-继承-多态)

    框架图 理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程强调的是功能行为 面向对象将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 面向对象的特点 ...

  5. 【译文】 C#面向对象的基本概念 (Basic C# OOP Concept) 第一部分(类,对象,变量,方法,访问修饰符)

    译文出处:http://www.codeproject.com/Articles/838365/Basic-Csharp-OOP-Concept 相关文档:http://files.cnblogs.c ...

  6. Java访问修饰符和三大特征(封装,继承和多态)

    一.访问修饰符基本介绍: java提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围): 1.公开级别:用public修饰,对外公开2.受保护级别:用protected修饰,对子 ...

  7. 20151024_004_C#基础知识(C#中的访问修饰符,继承,new关键字,里氏转换,is 和 as,多态,序列化与反序列化)

    1:C#中的访问修饰符 public: 公共成员,完全公开,没有访问限制. private: 私有的,只能在当前类的内部访问. protected: 受保护的,只能在当前类的内部以及该类的子类中访问. ...

  8. 1.7Oob封装 继承 访问修饰符 静态和构造方法的执行顺序

    1:访问修饰符 private     同类中 默认        同类        同包 protect    同类         同包      子类 public     同类        ...

  9. C# 面向对象基础&封装&继承&多态&加深一下冒泡排序写法

    (一)面向对象是什么? 面向对象是一种编程思想 (二)为什么要用面向对象? 1.结构清晰 2.易于维护 3.方便扩展 (三)new一个对象是什么过程? 实例化构造函数创建对象的过程就是将类实例化的过程 ...

随机推荐

  1. Qt编写数据可视化大屏界面电子看板9-曲线效果

    一.前言 为了编写数据可视化大屏界面电子看板系统,为了能够兼容Qt4和嵌入式linux系统,尤其是那种主频很低的,但是老板又需要在这种硬件上(比如树莓派.香橙派.全志H3.imx6)展示这么华丽的界面 ...

  2. Spring事务管理1-------环境搭建

    Spring将事务管理分成了两类: * 编程式事务管理 手动编写代码进行事务管理,开发中使用较少 * 声明式事务管理 A - 基于TransactionProxyFactoryBean的方式.开发使用 ...

  3. 使用xhprof进行线上PHP性能追踪及分析

    转自: http://avnpc.com/pages/profiler-php-performance-online-by-xhprof

  4. 分布式消息通信之RabbitMQ Tutorials

    目录 官网 1 Hello World! 1.1 生产者demo producer 1.2 消费者demo consumer 1.3 查看queue队列中的信息 页面查看,可看到有4条消息 命令查看 ...

  5. Hadoop学习笔记之三 数据流向

    http://hadoop.apache.org/docs/r1.2.1/api/index.html 最基本的: 1. 文本文件的解析 2. 序列文件的解析 toString会将Byte数组中的内存 ...

  6. 【DSP开发】CCS数据格式 load

    CCS支持的.dat文件详解(转载于hellodsp) CCS支持的.dat文件的格式为: 定数 数据格式 起始地址 页类型 数据块大小 1651 其后是文件内容,每行表示一个数据. 定数固定为&qu ...

  7. Bootstrap 表单示例

    1.打开https://getbootstrap.com/docs/4.3/examples/checkout/复制表单源码 2.清空main标签内容 3.粘贴表单源码 4.示例图

  8. Spark学习一:Spark概述

    1.1 什么是Spark ​ Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎. ​ 一站式管理大数据的所有场景(批处理,流处理,sql) ​ spark不涉及到数据的存储,只 ...

  9. 分享 Shiro 学习过程中遇到的一些问题

    最近在学习 shiro 安全框架后,自己手写了一个小的管理系统 web 项目,并使用 shiro 作为安全管理框架.接下来分享一下在这过程中,遇到的一些问题以及自己的解决思路和方法. 一.Log ou ...

  10. mybatis缓存机制与装饰者模式

    mybatis 缓存 MyBatis的二级缓存的设计原理 装饰者模式