面向对象

说起面向对象,大家因该都听说过,也知道是一个编程的方法,简称oop技术。它将对象的算法和数据结构看作一个整体,而一个程序就是由多个对象结合的整体。这样做可以提高代码的复用率,提高了软件的可维护性。

属性

一个对象具有属性和方法,属性用来表述对象或类的特征,比如人的姓名、身高、性别、生日等都属于人的属性。在这里重点介绍下在c#中属性如何定义和使用。

定义

//定义属性必须声明类
public class date
{
//在date类中定义一个格式为int格式的属性,属性名称为day,并为它赋值为7
private int day=7
         //在这里,属性其实已经定义好了,不过很多属性都是private(私有的除了本类无法访问)所以我们还要给它写一个访问器
//声明一个访问器,使外部的数据可以读取和修改day的值
public int day
{
//从属性中得到day的值
get
{
//将day的值返回
return day;
}
set
{
//将值赋给day,实现修改的功能
day=value;
} }
}
//如果想要定义只读属性的话,只定义get即可,set访问器不用定义。只写属性类似于只读属性。

使用

定义完属性后,就是如何使用的问题了,我们用下面的带码讲述下代码如何使用:

class program
{
static void main(string[] args)
{
//将刚定义的date类实例化
date mydate = new date();
//给mydate的day属性赋值为3
            mydate.Day = 3;
            //在控制台输出myday这个对象的day属性的值,如果没有get这个访问器的话,控制台就无法访问到mydate的day属性。
            Console.WriteLine(mydate.Day);
}
}

方法

         属性说完了,接下来就是方法了。方法用于实现可以有对象或类执行的计算或操作。方法的声明必须指定方法的 访问级别、返回值、方法名称和方法参数。有的方法没有返回值的则定义为void类型,例如:

声明

public void test()
{
console.writeline("这是一个测试控制台输出的方法")
}

其中,public是访问的级别代表公共访问,是访问级别的一种;void是返回值的类型,void代表无返回值;test是方法的名称;()中应输入方法的参数,该方法不需要传入参数,所以()中是空白。该方法可以在控制台输出一条语句:"这是一个测试控制台输出的方法"。

重载

         重载方法是指类中有两个以上的同名方法,但是使用的参数类型、参数个数或顺序不同,调用方法时,编译器可以自动判断使用哪种方法。
         下面介绍一下代码的实现:
         
namespace ConsoleApplication14
{
//重载方法的代码实现
class Program
{
//这是第一个方法,定义了方法 add,包括x,y两个参数,两个参数都是int类型的
public static int add(int x, int y)
{
//方法返回值,返回一个int类型的值
return x + y;
}
//第二个方法,同样定义了方法 add,包括x,y两个参数,其中x是int类型,y是double类型
public static double add(int x, double y)
{
//方法返值,返回的是double类型的值,运行时系统自动将int(整数类型)转化为double(带小数的一种类型——双精度浮点数)
return x + y;
}
//第三个方法,方法的名字还是add,不过变成了三个参数
public static int add(int x, int y, int z)
{
return x + y + z;
}
//主函数体
static void Main(string[] args)
{
//将program类实例化,只有实例化成为对象后才可以调用方法关于类和对象的介绍可以看我以前的博客
// 类 对象
Program Program = new Program();
//定义参数x为int类型,并给它赋值为3
int x = 3;
//定义参数y1为int类型,并给它赋值为4
int y1 = 4;
//定义参y2为double类型,并给它赋值为5.5
double y2 = 5.5;
//定义参数z为int类型,并赋值为6
int z = 6; //现在我们将定义好的参数传递给我们的方法,并将返回值输出到控制台 //其中 + 符号代表的是连接符,将前面的字符与后面的字符链接;
//而“+”代表的是输出字符串,没有实际意义,仅仅是为了输出。
//如果不太理解可以忽略,不影响对整体的理解。
//在这里,传入的两个数据都是我们定义好的int类型的所以系统自动选择第一个方法,输出的结果是:3+4=7
Console.WriteLine (x + "+" + y1 + "=" + Program .add(x,y1) ); //这里输入的参数为x,y2其中x是int类型,而y2是double类型的
//系统会自动选择其中的第二个方法输出结果是 3+5.5=8.5
Console.WriteLine(x + "+" + y1 + "=" + Program.add(x, y2)); //这里输入参数为 x,y1,和z 系统会自动选择有三个参数的方法。输出结果是 3+4+6=13
Console.WriteLine(x + "+" + y1 + "=" + Program.add(x, y1,z)); //让控制台暂停
Console.ReadLine(); }
} }

这是程序运行后的图片:

         

c#入门系列——类和对象的代码实现的更多相关文章

  1. es6 快速入门 系列 —— 类 (class)

    其他章节请看: es6 快速入门 系列 类 类(class)是 javascript 新特性的一个重要组成部分,这一特性提供了一种更简洁的语法和更好的功能,可以让你通过一个安全.一致的方式来自定义对象 ...

  2. 【JAVA零基础入门系列】Day15 对象的比较

    最近一直有事,博客也停笔了一段时间,十分抱歉. 这一篇主要讲讲对象的比较,什么是对象的比较,我们知道两个数值类型只需要用"=="符号即可进行相等判断,但如果是两个Goods对象呢? ...

  3. Java入门系列-11-类和对象

    这篇文章为你搞懂类和对象的使用 对象:用来描述客观事物的实体,由一组属性和方法组成,万物皆对象. 属性:就是对象的特征,像身高.体重.颜色 方法:对象的行为,如跑.跳 类:类是模子,定义对象将会拥有的 ...

  4. OC开发系列-类与对象

    面向对象 面向对象思想是一种解决问题的思想, 不在是面向过程的去思考问题怎样解决.面向对象解决问题时首先要考虑需要找几个对象能解决这个问题. 常见的概念: * Object Oriented 面向对象 ...

  5. PHP类和对象等代码说明

    1.定义和创建类和对象: 定义类要使用class关键字.例如:class 类名{//属性和方法} 创建对象使用new关键字.例如: $p1 = new 类名;,可以基于一个类创建多个对象. 2. 类属 ...

  6. python入门17 类和对象

    类:一类事物的抽象化.概念: 类的变量(属于类的变量,定义在类的开始处)  成员变量(self.变量) 类的方法( @classmethod,cls参数)   成员方法( self参数 )  静态方法 ...

  7. java系列--类和对象

    一.成员属性,构造方法,成员方法 1.类名首字母一般大写 2.方法名的首字母一般是小写,使用驼峰法(匈牙利法) myCry, 下划线法 my_cry 3.方法的声明没有函数体(接口,抽象类),数据类型 ...

  8. java学习-初级入门-面向对象⑤-类与对象-类与对象的定义和使用3

    这次我们要做一个日期类Date类 主要目的是    1.  熟悉-->构造不同参数的函数  2.善于利用已有的函数!! 题目要求: Date类要求 可设定年月日 可转换为字符串,并可指定分隔符, ...

  9. java学习-初级入门-面向对象④-类与对象-类与对象的定义和使用2

    我们继续学习类与对象,上一篇我们定义了  坐标类(Point), 这次我们在Point的基础上,创建一个圆类(Circle). 案例:创建一个圆类 题目要求: 计算圆的周长和面积:求判断两个圆的位置关 ...

随机推荐

  1. NYoj1058

    水题,dfs,裸的,本来这道题没什么好写的,只是第一次写的代码慢的出奇,纪念一下那个奇怪的思路 链接:http://acm.nyist.net/JudgeOnline/problem.php?pid= ...

  2. LPC1788的ADC和DAC使用

    #ifndef __ADC1_H_ #define __ADC1_H_ #include "common.h" #include "delay.h" void ...

  3. minor gc 和 full gc

    JAVA中关于GC的分析中,需要搞清楚,GC线程在什么时候,对什么东西,做了什么操作. 1-在什么时候 首先需要知道,GC分为minor GC和full GC,JAVA内存分为新生代和老年代,新生代中 ...

  4. bzoj 4002: [JLOI2015]有意义的字符串

    这个题... #include <bits/stdc++.h> #define rep(i, a, b) for (int i = a; i <= b; i++) #define d ...

  5. leetcode day7

    这道题弄的心好累..  [Reverse Linked List]206 描述: Reverse a singly linked list. click to show more hints. Hin ...

  6. windowsxp系统下SVN添加新用户

    以我部署的文件为例: 我在f盘下新建一个zzz文件夹将其部署为svn共享工程后,新来员工需要添加svn账号以获取工程. 总共三步begin: 1.进入工程文件夹ZZZ在里面有一个conf文件夹如图: ...

  7. Python3基础 使用for循环 删除一个列表中的重复项

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  8. Grid (read-only) objects and methods (client-side reference)获取子表单对象的一些方法 Crm 2016

    https://msdn.microsoft.com/en-us/library/dn932126.aspx#BKMK_GridControl Updated: November 29, 2016 A ...

  9. AP聚类算法(转)

    Affinity Propagation (AP) 聚类是2007年在Science杂志上提出的一种新的聚类算法.它根据N个数据点之间的相似度进行聚类,这些相似度可以是对称的,即两个数据点互相之间的相 ...

  10. MVVM指南(课程学习)

    iOS MVVM 参考 iOS MVVM 前世今生 iOS MVVM 优缺点 下面是我对MVVM知识的总结,主要包括模块划分.开发步骤.重点解说三部分.做这篇文章,主要是考虑总结出可执行的开发步骤,按 ...