【基础篇】C#基础知识——面向对象

第一章 C#基础知识——入门
第二章 C#基础知识——面向对象


文章目录

  • 【基础篇】C#基础知识——面向对象
  • 前言
  • 一、C#面向对象的特性
  • 二、命名空间
    • 2.1 namespace
    • 2.2 using
    • 2.3 class
    • 2.4 程序结构
    • 2.5 类的成员
    • 2.6 静态与非静态
    • 2.7 举例
    • 2.8 在线类库帮助
  • 三、C#常用类
    • 3.1 输入输出类
      • 3.1.1 用Console.WriteLine输出
      • 3.1.2 用Console.ReadLine输出
    • 3.2 Math类
    • 3.3 Random类
    • 3.4 错误捕获类
    • 3.5 静态与非静态
  • 总结

前言

这篇主要讲C#的面向对象基础,以及一些案例


提示:以下是本篇文章正文内容,下面案例可供参考

一、C#面向对象的特性

简而言之:
编写自己的类,使用别人的类

二、命名空间

2.1 namespace

namespace就是命名空间的意思,在西交大的课程中,老师给出了个形象的例子:
你可以将命名空间理解为外国人的名字,由于他们名字太长,所以就需要命名空间来分割
例如:阿里巴巴_叽里呱啦_杨狗蛋
其中阿里巴巴可能是你爷爷奶奶辈及其以上的名字,叽里呱啦是你父母辈的名字,杨狗蛋是你的名字
如图:

这样如果你和别人说,你叫阿里巴巴_叽里呱啦_杨狗蛋,他们也就知道你的祖辈,父母叫什么了,同理在代码中也一样,你会引用这些父类。

2.2 using

由于命名空间真的太长了,真的没有人有耐心去听你的自述, 想象如果名字更长的情况下:
亚当夏娃_亚当夏娃的儿子_亚当夏娃的孙子_......._阿里巴巴_叽里呱啦_杨狗蛋!!!
想象两个人在沟通,一个人说,我叫:阿里巴巴_叽里呱啦_杨狗蛋,另一个人说,我叫:七零八碎_红枣芋泥茶_刘二狗,然后他们互相问候对方的亲戚.............

画面太美…

同理在代码中,如果你要引入一个你名字的类,那么你就要打出
阿里巴巴_叽里呱啦_杨狗蛋
夺损哪
所以这里引用了Using的概念,也就是导包
在系统内引入了阿里巴巴_叽里呱啦.etc
这样你和别人对话就可以简化自己名称了,你就可以跟被人说,你叫杨狗蛋了。

这里引入一个小案例:
本来你想输入一个hello,world

System.Console.WriteLine("Hello,World");//输出文本信息内容

现在引入System这个大类之后:

using System;

你就可以直接写:

Console.WriteLine("Hello,World");//输出文本信息内容

这样就简化了我们的开发过程


2.3 class

确认了命名空间之后,我们就为杨狗蛋创立对应的类:
类就相当于组织这个命名空间的各个部分,
例如现在为杨狗蛋建立一个body类,表示她的身体:

class Mybody{}

2.4 程序结构

using 其他命名空间
using 其他命名空间
namespace 自己的命名空间{class 自己的类{}
}

2.5 类的成员

类一般都有字段,属性,事件,方法,统称为类的成员。

  • 字段,属性:表现人的特性,例如:人的身高,体重
  • 事件:表示某个动作触发的事件,例如:点击窗口跳出“你好,我是XXX”(具体在第二部分涉及)
  • 方法则表示提供的功能
 class Mybody{/** 这些是字段* */public int Myheight; //公有:我有多高private int woyouduozhong; //私有(只能在类中自己被引用),我有多重/** 这些是方法* */public void Myinfo(){Console.WriteLine("My Height is:\n"+Myheight);}}

2.6 静态与非静态

简而言之:
静态成员可以直接引用,例如Console.ReadLine()
非静态成员需要实例化,例如:
先实例化一个Mybody类,在引用他们的一个方法Mybody.Myinfo()

2.7 举例

这里举个例子来整理之前的知识

using System;
using System.Collections.Generic;
using System.Text;
/** * 从这里不难看出,C#语言有和面向对象语言一样的基础,这里 using………………导包Namespace…………….命名空间,指向类名Static void Main(String[] args){//主程序入口}* * */
namespace HelloWorld
{class Hello{static void Main(String[] args){Mybody mybody = new Mybody();mybody.Myheight = 170;mybody.Myinfo();}}class Mybody{/** 这些是字段* */public int Myheight; //公有:我有多高private int woyouduozhong; //私有(只能在类中自己被引用),我有多重/** 这些是方法* */public void Myinfo(){Console.WriteLine("My Height is:\n"+Myheight);}}
}

运行结果:

2.8 在线类库帮助

总结:和其他语言的api文档一样,网址为:
https://docs.microsoft.com/zh-cn/previous-versions/gg145045(v=vs.110)?redirectedfrom=MSDN

感兴趣的自己去翻

三、C#常用类

3.1 输入输出类

分为输入,输出两大模块

3.1.1 用Console.WriteLine输出

(1)输入一个简单的字符串

 Console.WriteLine("Welcome.....");

(2)输入变量和表达式

 int age = 20; //定义我的名字Console.WriteLine(age);Console.WriteLine(age * age);//age平方

(3)拼接字符串

 Console.WriteLine("My Height is:\n"+Myheight);

3.1.2 用Console.ReadLine输出

注意,Console.ReadLine默认使用的值是字符串

(1)输入字符串

String s = Console.ReadLine(); //输入一个字符串

(2)输入其他类型的
因为默认输入的值是字符串,如果需要输入其他类型的,就需要类型转换

int zhengshu1 = Convert.ToInt32(Console.ReadLine()); //输入一个整数

3.2 Math类

.Net提供了System.Math类,这个类有大量的方法相当于平常的数学函数

举例:

/*
* 输入一个数求他的10次方的开根号
*/Double Num = Convert.ToDouble(Console.ReadLine());Double logNum = Math.Log10(Num);Console.WriteLine("开10根号得到的结果:" + logNum);

3.3 Random类

Random使用的时候需要创建一个对象并实例化
举例:

Random r1 = new Random();
int x = r1.Next(10, 20); 生成一个10到19范围的double类型的随机整数
int y = r1.Next(20); //生成一个0到19范围的随机整数
double z = r1.NextDouble(); //生成一个0到1范围的double类型的随机浮点数

产生多个随机数无需多次实例化,一次实例化即可。 我们可以把r1理解为包含很多随机数的序列,Next就是取出下一个。

3.4 错误捕获类

与其他面向对象语言的错误捕获类型一致,不过多赘述

3.5 静态与非静态

以上的类为例子,可以看出:
(1)Console,Math是静态类,可以直接类名.方法的使用
(2)Random不是静态类,需要实例化后使用
具体的类的静态/非静态可以参考msdn中的文档

总结

(1)作为初学者,比较容易混淆的是命名空间和类的概念,
(2)对于属性和字段,先阶段先避而不谈,等谈到对应知识的时候再解释。
(3)C#的语言特性个人觉得是介于JAVA和C之间的,输入和C语言的很像,只能通过类型转换,但一些面向对象的思想以及其他的方面,还是和JAVA很像的

【基础篇】C#基础知识——面向对象相关推荐

  1. java基础篇_java基础篇1

    JAVA基础篇1 注释 单行注释 //这是一个单行注释,由两个斜杠组成,不能嵌套多行注释 多行注释 /*这是一个 多行注释 ,//里面不能嵌套多行注释, 但是可以嵌套单行注释*/ 文档注释 /**ja ...

  2. 【谷粒商城基础篇】基础环境搭建

    谷粒商城笔记合集 分布式基础篇 分布式高级篇 高可用集群篇 ===简介&环境搭建=== 项目简介与分布式概念(第一.二章) 基础环境搭建(第三章) ===整合SpringCloud=== 整合 ...

  3. java类初始化顺序_《To Be a Better Javaer》-- Java 基础篇 vol.2:面向对象

    Java是面向对象的高级编程语言,面向对象的特征如下: 面向对象具有抽象.封装.继承.多态等特性: 面向对象可以将复杂的业务逻辑简单化,增强代码复用性: 面向对象是一种常见的思想,比较符合人们的思考习 ...

  4. k9.第三章 K8s基础篇-必备Docker知识 (二)

    3.Dockerfile用法 FROM:继承基础镜像 MAINTAINER:镜像制作作者信息 LABEL:镜像制作作者信息,新版建议使用LABEL RUN:用来执行shell命令 EXPOSE:暴露端 ...

  5. 穿越Java - 基础篇 第三章 面向对象介绍 | 第1节 面向对象思想

    面向对象思想 理解: 面向对象更多的是一种思想的体现. 面向过程更多体现的是什么事情都要亲力亲为. 而面向对象跟多体现的是如何指挥别人做事情,只要明确我要干什么即可. 通过将相关或类似的功能 封装在不 ...

  6. java官网教程(基础篇)—— 基础的Java类 —— 基础 I / O

    目录 基本 Java 类 基础 I/O I/O流 字节流 字符流 缓冲流 扫描和格式化 扫描 格式化 从命令行中进行IO操作 数据流 对象流 文件 I/O(采用 NIO.2) 什么是路径? Path类 ...

  7. Extjs 基础篇—— Function基础

    这里主要是JS的基础知识,也是深入理解Ext的基础. 1.参数可变长,注意跟Java还是有一点区别的. 例: view source print? 1.function getUser(name,ag ...

  8. MYSQL 基础篇 | 02-MYSQL基础应用

    文章目录 1 MySQL概述 2 SQL 2.1 SQL通用语法 2.2 SQL分类 2.3 DDL 2.3.1 数据库操作 2.3.2 表操作 2.4 DML 2.4.1 添加数据 2.4.2 修改 ...

  9. php学习基础篇之基础函数(数学 日期 字符串)、php循环流程控制

    知识点: 一 . 基础函数(数学 日期 字符串) 二 . php循环流程控制 一 . 基础 函数(数学 日期 字符串) 函数 : 执行某项功能的特定代码. sin()  cos() 数学中 sin(3 ...

  10. 基础篇——HTML基础 一

    HTML基础 标签语义化 h 和 p标签 bui 和 小伙伴 img图片标签 链接 表单 标签语义化 在合适的地方使用合适的标签:该放p时就放p 为什么要标签语义化:因为浏览器只认识标签,没有语音语调 ...

最新文章

  1. NLLLoss CrossEntropyLoss Pytorch
  2. 剖析ASP.NET下部构造
  3. WMI技术介绍和应用——Event Consumer Provider
  4. 输入框中默认的值,判断是否输入内容
  5. python剑指offer跳台阶_【剑指offer】跳台阶I和II(Javapython)
  6. ubuntu16.04安装UR3/UR5/UR10机械臂的ROS驱动并实现gazebo下Moveit运动规划仿真以及真实UR3机械臂的运动控制(2)
  7. 关于SAP Kyma在国内的落地情况
  8. C4C和CRM里获取当前登录用户分配的Organization Unit信息
  9. 离线java人脸识别开源算法_Java 离线人脸识别 基于ArcFace 2.0 Demo
  10. java web项目_[适合初中级Java程序员修炼手册从0搭建整个Web项目](二)
  11. .NET平台下几种SOCKET模型的简要性能供参考
  12. HDU 4857 逃生 【拓扑排序+反向建图+优先队列】
  13. 操作系统知识回顾(5)-内存管理
  14. Linux之date命
  15. Hadoop切换namenode为active
  16. CSS学习笔记(二)选择器
  17. 零基础入门cv - 街景字符编码识别_零基础入门CV赛事- 街景字符编码识别-03
  18. win7计算机自动关机设置在哪里设置方法,win7电脑自动关机怎么设置_win7电脑自动关机怎么设置在哪-win7之家...
  19. 渗透学习-文件上传篇-基础知识部分(持续更新中)
  20. 免信任型计算的扩容模型

热门文章

  1. “启智创新 连接未来”2016中国移动互联网年会在京举办
  2. 财政支持小微金融服务:角色矛盾与政策改进
  3. python爬虫翻页代码 豆瓣_Python爬虫 豆瓣动态页面的爬取
  4. 激活Windows 7旗舰版
  5. 58页大数据资源平台建设可行性研究方案(附下载)
  6. 分享微信答题活动制作步骤_制作微信答题活动要注意什么
  7. 今日睡眠质量记录73分
  8. 【信息奥赛题解】昆虫繁殖(详细分析题解 C++ 代码)
  9. 数据分析必备|你不得不知道的11款数据分析工具
  10. mac安装使用xampp