C# 面向对象小解析
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
下来我们开始了解C#的面向对象方面知识,首先来认识一下面向对象。 面向对象: 面向对象程序设计(Object Oriented Programming,OOP)是一种计算机编程架构。OOP的一条基本原则是计算机程序由单个能够起到子程序作用的单元或对象组合而成。OOP达到了软件工程的三个主要目标:重用性、灵活性和扩展性。OOP=对象+类+继承+多态+消息,其中核心概念是类和对象。 通过百度百科来看,发现这说的是个神马玩意儿,还是给一个切实生活的例子来看,以洗衣服为例,设定两个对象,一个是洗衣机,一个是人,人去完成洗衣服这个动作,对于洗衣机有以下方法:洗衣服方法,脱水方法,烘干方法。对于人有以下方法:加衣服方法,加洗衣粉方法,按启动按钮方法。 然后开始执行这个流程:人加衣服--人加洗衣服--人按启动按钮--洗衣机洗衣服--洗衣机脱水--洗衣机烘干,通过一个个方法来完成洗衣服这个流程,简单来说就是某个对象执行某个动作完成某件事,而不是直接一步步执行方法,那是面向过程。 面向对象有三大特性:封装,继承,多态,在文章中会体现出来。 对于面向对象的概率有了粗略的了解,接下来先来了解如何检测异常 异常处理: 异常就是程序中有语法错误或者用户输入错误等等,这会导致程序无法运行,首先系统有它自己的异常处理方法,例如下面我定义了一个变量stu,类型为string,但我赋给它一个int类型数据,系统直接报错,说无法给stu一个int类型数据。 当我们想完成一个两个数加法运算,让用户输入数据,来执行加法,首先我们知道C#输入只能是字符串类型,要利用Convert来将string类型转为值类型来,而在输入时,如果用户输入错误,输入的不是数字,那程序就直接结束并报错,如下所示: 而我们可以利用异常处理语句来让程序遇到错误时对错误进行解决,来完成下一步动作,异常处理语句有以下三个关键词:try,catch,finally try:一个 try 块标识了一个将被激活的特定的异常的代码块。后跟一个或多个 catch 块。(就是可能出现异常的代码) catch:程序通过异常处理程序捕获异常。(就是要捕获哪方面异常) finally:执行给定的语句,不管异常是否被抛出都会执行。 try { // 可能会异常的语句 } catch(ExceptionName e) { // 处理方法 } finally { // 执行语句 } 关于有哪些异常我们来看菜鸟教程:异常类主要来自System.Exception类,所以Exception就包含所有可能的异常。 下面我们就利用异常处理来完成对加法运算异常的检测,让程序在遇到异常时不是直接结束程序,而是解决异常,继续执行程序。
如果有finally语句就是以下效果: finally { Console.WriteLine("管你有没有异常,我就要输出"); } 可以发现当有异常时,系统除了会输出处于catch和finally中的语句外,不会执行其他的语句,当没有异常时才会接下去执行。 了解完异常处理,接下来开始面向对象的有关内容,首先是C#中的类。 类(Class: 当你定义一个类时,你定义了一个数据类型的蓝图。这实际上并没有定义任何的数据,但它定义了类的名称意味着什么,也就是说,类的对象由什么组成及在这个对象上可执行什么操作。对象是类的实例。构成类的方法和变量称为类的成员。 --- 菜鸟教程 类的定义: 关键字class,后面接类的名称,花括号中为类的主体。 如何创建一个类: 其实我们创建一个程序时,就创建了一个类,如图所示,这是一个刚创建的程序文件,它就自动生成一个名为Program的类,这个名字和文件名是一样的。 接下来演示如何创建一个类,我们创建一个名为Car的类。 这样我们创建好了一个名为Car的类,这些using都是会自动生成的,然后我们可以给类中添加成员。成员要有访问表示符,默认为private(私有的),此时无法直接在其他类中使用,设为public(公共的)就可以随意使用了。 public string brand; // 牌子 public int speed; // 速度 private int maxSpeed; // 最大速度 public string weight; // 重量 如何使用类中的成员:首先要new一个对象来使用这个类。如下所示: Car car1 = new Car(); car1.brand = "玛莎拉蒂"; car1.speed = 270; car1.weight = "1.5T"; 这样就可以使用类中定义的成员了,可以看到里面缺少了maxSpeed这个成员,因为它的访问符为private,所以不能直接使用,要在类中去添加方法。如下所示: public void SetMaxSpeed(int temp) // 得到数据 { maxSpeed = temp; } public int GetMaxSpeed() // 输出数据 { return maxSpeed; } 这样就可以使用maxSpeed了,我还在类中写了一个输出方法,方便我们输出相关信息。 类的使用就可以体现出封装,将我们的一些方法写在一个程序中,在通过主程序去调用这个类中的方法,从而让主程序显的更加简洁明了。 构造函数: 构造函数是类中一个特殊的成员函数,构造函数的定义没有返回类型。定义构造函数后,每在主程序中创建一个新的对象就会使用这个构造函数。如下所示: public Car() { Console.WriteLine("我是构造函数"); } 默认的构造函数是没有参数的,如果加上参数就可以为你的成员进行初始化,如下所示: public Car(int speedA) { speed = speedA; Console.WriteLine("对象创建成功,速度默认为 = {0}", speedA); } 属性: 属性主要用于外部来访问和使用内部的私有成员变量,例如我们上面要使用maxSpeed变量,要定义两个方法才能使用这个变量,而使用属性就可以只定义一个方法就可以使用了。如下所示: public int MaxSpeed { get { return maxSpeed; } set // 这里默认值是value { maxSpeed = value; } } car1.MaxSpeed = 325; Console.WriteLine(car1.MaxSpeed); 今日小题:编写一个程序,倒序输出一个数,不输出这个数开始的0和结束的0,例如00520520 ---> 25025 我们直接从输入的最后一个数开始,利用求余运算--"%",来得到最后一个数,给他一个判断看他是否为0,如果不为0就让他输出后续数字,设定一个标志位开始为false,判断最后一个数是否为0,为0则不管,不为0则标志位为true,循环条件为p != 0,循环的最后让p = p / 10;就使这个数不断减少一位,少到为0时就表示前面的数都是0了,就不用管了。
由于输出是一个数一个数输出,所以输出语句用Write避免换行。 该文章在 2024/1/31 15:55:41 编辑过 |
关键字查询
相关文章
正在查询... |