C#是纯粹的面向对象编程语言,它真正体现了“一切皆为对象”的精神。

在C#中,即使是最基本的数据类型,如int,double,bool类型,都属于System.Object(Object为所有类型的基类)类型。此外,使用C#编程,不会存在与游离于对象之外的属于过程的东西。因此,学习C#,就必须具有面向对象思想。

什么是类?

使用C#编程,所有的程序代码几乎都放在类中,不存在独立于类之外的函数。因此,类是面向对象编程的基本单元

在绝大多数面向对象语言中,一个类都可以包含两种成员:字段与方法。字段与方法这两个概念是面向对象理论的术语,是通用于各种面向对象语言的。而在各种的具体面向对象语言中,可以简单的这样理解:字段即变量,方法即函数

类的字段:代表了类中的数据,在类的所有方法之外定义了一个变量即定义了一个字段。变量前可以加上public、private和protected表示字段的访问权限。

例:

class ren

{

public decimal tizhong; //体重decimal类型

private static decimal nianling;//年龄decima类型,静态的

public int shengao=175;//身高int类型,身高赋值175cm;

}

类的方法:为了解决代码重复的问题,绝大多数程序设计语言都将完成某一公用功能的多个语句组合在一起,起一个名字用于代表这些语句的全体,这样的代码被称为“函数”。

例如:

[public | private] class 类名  //类名前的修饰符默认是public

{

[public | private]  数据类型  变量名;//定义变量

[public | private] 数据类型 函数名(参数列表)//定义函数

{

函数体;

}

}

  

在一个program.cs文件中添加一个类,而这个class类就是专门存放程序需要的函数方法的库(平时的积累),每一个 方法函数都由多个变量、语句等组成的一个代码块,而这个代码块有一个方法名,(在方法名前加修饰符public,private,protected等表 示这个函数的访问权限)需要时直接在主函数的文件中调用这个方法名即可。

函数也分为有返回值和无返回值两种情况。

<1>有返回值的情况(多种数据类型,如int,string,double等):

class  类名{

public int  函数名(int x,int y)

{

int z=x+y;

return z;//上面函数的数据类型就是return要返回的数据类型,一定要对应一致,才能在主函数中调用并输出返回值;

}

}

<2>无返回值的情况(void)

class  类名{

public void  函数名(int x,int y)//如果没有返回值,即在定义函数名前加void;

{

int z=x+y;

Console.Write("z的值为:"+z);直接在函数中输出

return;//或者直接return+分号;即没有返回值,不用在主函数中调用输出

}

}

方法的定义与使用

定义:放在一个类的函数(通常加一个存取权限修饰符)称为“方法”;

调用一个方法最基本的方式是通过类创建的对象。new初始化对象的过程是创建一个新对象的过程,利用原有的模板创建一个新的对象,开辟一个新的空间。

例如:ren r=new ren();

在ren类中定义一个Add()方法:

public class ren()

{

public int Add(int x,int y)

{

return x+y;

}

}

主函数调用ren()这个方法:

static void Main(string[] args)

{

ren r=new ren();//创建ren类的对象,命名r

int result=r.Add(100,200);//通过对象调用类的方法,结果保存在局部变量中

}

方法重载 

  方法重载是实现多态的另一个方法。通过方法重载,一个类中可以有多个具有相同名字的方法,由传递给它们的不同个数的参数来决定使用哪种方法。例 如,对于一个作图的类,它有一个draw()方法用来画图或输出文字,我们可以传递给它一个字符串、一个矩形、一个圆形,甚至还可以再制定作图的初始位 置、图形的颜色等。对于每一种实现,只需实现一个新的draw()方法即可,而不需要新起一个名字,这样大大简化了方法的实现和调用,程序员和用户不需要 记住很多的方法名,只需要传入相应的参数即可。

  因为类可以包含运算符如何运算的指令,所以可以把运算符用于从类实例化而来的对象。

  我们为重载运算符编写代码,把它们用作类定义的一部分,而该运算符作用于这个类。也可以重载运算符,以相同的方式处理不同的类,其中一个(或两个)类定义包含达到这一目的的代码。

注意:只能用这种方式重载现有的C#运算符,不能创建新的运算符。

练习:

用结构体做排序问题,输入学生的学号,姓名,成绩,按成绩由大到小排序。

C#面向对象基础类与方法的更多相关文章

  1. python 面向对象、特殊方法与多范式、对象的属性及与其他语言的差异

    1.python 面向对象 文章内容摘自:http://www.cnblogs.com/vamei/archive/2012/06/02/2532018.html   1.__init__() 创建对 ...

  2. OO开发思想:面向对象的开发方法(Object oriented,OO)

    面向对象的开发方法(Object oriented,OO)认为是好文章吧,拿来分享一下(转载) 面向对象的开发方法(Object oriented,OO) 从事软件开发的工程 师们常常有这样 的体会: ...

  3. 【Java基础】【08面向对象_继承&方法&final】

    08.01_面向对象(代码块的概述和分类)(了解)(面试的时候会问,开发不用或者很少用) A:代码块概述 在Java中,使用{}括起来的代码被称为代码块. B:代码块分类 根据其位置和声明的不同,可以 ...

  4. js面向对象 多种创建对象方法小结

    转自js面向对象 多种创建对象方法小结 1.对象字面量 var clock={ hour:12, minute:10, second:10, showTime:function(){ alert(th ...

  5. 面向对象中特殊方法的补充、isinstance/issubclass/type、方法和函数、反射

    一.面向对象中特殊方法的补充 1.__str__ 能将对象名改成你想要的字符串,但是类型还是类 class Foo(object): def __init__(self): pass def func ...

  6. 利用 Python 尝试采用面向对象的设计方法计算图形面积及周长

    利用 Python 尝试采用面向对象的设计方法.(1)设计一个基类 Shape:包含两个成员函数:def cal_area(): 计算并返回该图形的面积,保留两位小数:def cal_perimete ...

  7. day34 反射、面向对象内置方法:如__str__、面向对象的软件开发

    Python之路,Day21 = 反射.面向对象内置方法:如__str__.面向对象的软件开发 几个内置查看的方法使用 .__base__ 查看类的继承结构.mro() 对象找属性的顺序存在里面 -- ...

  8. C语言面向对象的简便方法

    都知道C语言是面向过程的,但是现在软件规模越来越大,通过面向对象的方式可以简化开发.业余时间想了个简单的方法,在C中使用一部分面向对象的基本功能.由于C语言自身的限制,并不完善,只能将就用,聊胜于无, ...

  9. python 3全栈开发-面向对象之绑定方法(classmethod与staticmethod的区别)、多态、封装的特性property

    一.面向对象绑定方法 一.类中定义的函数分成两大类 1.绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入): 1. 绑定到类的方法:用classmethod装饰器装饰的方法. 为类量身定制 ...

随机推荐

  1. JQuery对象与DOM对象分析

    一.定义: DOM对象(文档对象模型):暂时这么理解:通过JavaScript获取的HTML元素,称为DOM对象.如:var domID=document.getElementById("i ...

  2. wamp配置虚拟主机

    ================================================================= 来源参考一:http://wenku.baidu.com/link? ...

  3. SQL Server调优系列基础篇 - 并行运算总结(二)

    前言 上一篇文章我们介绍了查看查询计划的并行运行方式. 本篇我们接着分析SQL Server的并行运算. 闲言少叙,直接进入本篇的正题. 技术准备 同前几篇一样,基于SQL Server2008R2版 ...

  4. V$SESSION_LONGOPS

    对大部分DBA来说,V$SESSION_LONGOPS视图都不会陌生,以前在面试的时候,也有一些企业会问到如何查询数据库中运行时间比较长的SQL,就可以通过这个视图来查看.V$SESSION_LONG ...

  5. swift入门-day01

    Swift 简介 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序 2014 年,在 Apple WWDC 发布 历史 2010 年 7 月,苹果开发者工 ...

  6. React-Native牛刀小试仿京东砍啊砍砍到你手软

    React-Native牛刀小试仿京东砍啊砍砍到你手软 React-Native基础教程 *React-Native基础篇作者git *React-Native官方文档 *Demo 几个月前faceb ...

  7. html-----015---HTML ASCII 参考手册

    HTML 和 XHTML 用标准的 7 比特 ASCII 代码在网络上传输数据. 7 比特 ASCII 代码可提供 128 个不同的字符值. 7 比特 可显示的 ASCII 代码 <html&g ...

  8. 实例:图形绘制[OpenCV 笔记15]

    DrawShapes.cxx # include "DrawShapes_utils.h" #define WINDOW_NAME1 "Painting 1" ...

  9. ASP.NET设计模式(一)、适配器模式、依赖注入依赖倒置、空对象模式

    鸟随凤鸾,人伴贤良,得以共之,我之幸也.说的是鸟随着鸾凤可以飞的更高远,人和比自己境界高的相处,自己也会得到熏染进步. 一.概述 分享出来简单的心得,望探讨 依赖倒置 依赖注入 Adapter模式 N ...

  10. python 访问php程序,实现定时

    #!/usr/bin/python #test2.py import sys import urllib2 j = True jj = 1##########用于统计,所以分页, url = 'htt ...