c#入门系列——类和对象的代码实现

         面向对象

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

         属性

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

         定义

//定义属性必须声明类
public class date 
{//在date类中定义一个格式为int格式的属性,属性名称为day,并为它赋值为7private 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属性赋值为3mydate.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类型,并给它赋值为3int x = 3;//定义参数y1为int类型,并给它赋值为4int y1 = 4;//定义参y2为double类型,并给它赋值为5.5double y2 = 5.5;//定义参数z为int类型,并赋值为6int z = 6;//现在我们将定义好的参数传递给我们的方法,并将返回值输出到控制台//其中 + 符号代表的是连接符,将前面的字符与后面的字符链接;//而“+”代表的是输出字符串,没有实际意义,仅仅是为了输出。//如果不太理解可以忽略,不影响对整体的理解。//在这里,传入的两个数据都是我们定义好的int类型的所以系统自动选择第一个方法,输出的结果是:3+4=7Console.WriteLine (x + "+"  + y1 + "=" + Program .add(x,y1) );//这里输入的参数为x,y2其中x是int类型,而y2是double类型的//系统会自动选择其中的第二个方法输出结果是 3+5.5=8.5Console.WriteLine(x + "+" + y1 + "=" + Program.add(x, y2));//这里输入参数为 x,y1,和z 系统会自动选择有三个参数的方法。输出结果是 3+4+6=13Console.WriteLine(x + "+" + y1 + "=" + Program.add(x, y1,z));//让控制台暂停Console.ReadLine();}}}
         这是程序运行后的图片:
         

转载于:https://www.cnblogs.com/liyasong/p/6387885.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375382.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓TCP通信版本2

PC做服务器,安卓做客户端。 安卓获取输入框的内容并发送,然后等待接收服务器的消息 服务器先行开启,接收到客户端的数据,然后回复消息。 实现了对线程类的封装,通过按钮启动线程发送并接收 服务器代码(java…

Win32ASM学习[5]: 数据对齐相关的伪指令(ALIGN、EVEN、ORG)

32 位的寄存器容量是 4 字节, 如果内存中的数据都按 4*n 字节对齐, 肯定会加快吞吐速度; 但事实并非如此, 不同大小的数据可能会让寄存器别别扭扭地去处理, 从而降低了运行速度! 如果使用对齐, 就会浪费掉一些内存空间; 其实这是一个需要权衡 "速度" 与 "内存&…

常用Jquery前端操作

input只能输入正整数 οnkeyup"this.valuethis.value.replace(/\D/g,)"if(!confirm("删除后无法恢复,确认继续?")){return false;}//判断字符串里是否存在指定字符 if(str.indexOf("abc") ! -1){//表示存在}1.双引号替换…

【Linux/Ubuntu学习 10】unbuntu 下 eclipse 中文乱码的解决

wangddwdd-pc:~$ gedit /var/lib/locales/supported.d/local 添加: zh_CN.GBK GBKzh_CN.GB2312 GB2312 终端执行命令: sudo dpkg-reconfigure --force localesGenerating locales... en_AG.UTF-8... done en_AU.UTF-8... done en_BW.UTF-8... done …

Win32ASM学习[6]: PTR、OFFSET、ADDR、THIS

PTR: 指定要操作的数据尺寸 ------------------------------------------------------------------------------------------------------------------------------------------ .386 .model flat, stdcall include windows.inc include kernel32.inc include masm…

简述WebService的使用(一)

环境: vs版本:vs2013 windows版本:win7 IIS版本:IIS7.0 (如果觉得对您有用,请点击右下角【推荐】一下,让更多人看到,谢谢) 配置环境: 主要针对于IIS 首先&…

【Java基础】用LinkedList实现一个简单栈的功能

栈的基本功能 栈的最基本功能是保障后进先出,然后在此基础上可以对在栈中的对象进行弹入弹出,此外,在弹出时,如果栈为空,则会报错,所以还需要提供获取当前栈大小的方法。 构造存储对象Student /*** Created…

Win32汇编学习[7]: 定义符号常量(=、EQU、TEXTEQU)

关于符号常量 的例子 .386 .model flat,stdcall include windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib .data n 1 ; 伪指令只能定义整数或整数表达式…

oracle 删除表中重复记录,并保留一条

1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1) 2、删除表中多余的重复记录,重复记录是根据单个字段(Id&#x…

透过WinDBG的视角看String

摘要 : 最近在博客园里面看到有人在讨论 C# String的一些特性. 大部分情况下是从CODING的角度来讨论String. 本人觉得非常好奇, 在运行时态, String是如何与这些特性联系上的. 本文将侧重在通过WinDBG来观察String在进程内的布局, 以此来解释C# String的一些特性. 问题 C# Stri…

Win32ASM学习[8]: 进制转换的库函数

在 masm32.inc 中有这样几个函数的声明: byt2bin_ex PROTO :BYTE, :DWORD wrd2bin_ex PROTO :WORD, :DWORD dw2bin_ex PROTO :DWORD, :DWORD dw2hex_ex PROTO :DWORD, :DWORD bin2byte_ex PROTO :DWORD -------------------------------------------------------------…

SOJ 2800_三角形

真的是O不是0【看了discuss才发现。。。。。一个大写的蠢 【题意】多个黑白三角形组成的倒三角,求白三角形组成的最大倒三角的面积 【分析】由于问的是倒三角个数,所以只需看与行数奇偶性相同的白色倒三角形,设v[i][j]为以第i行第j列的倒三角…

ueditor富文本编辑器 修改框宽度和高度的方法

在使用ueditor的时候&#xff0c;用的textarea <textarea name"content" id"myEditor">这里写这条规则的回复内容</textarea> 给它加style"width:300" 属性的时候&#xff0c;发现不起作用。 正确的方法应该是&#xff1a; <scri…

Win32ASM学习[9]: 标志寄存器

TF(Trap Flag)——位8&#xff0c;跟踪标志。置1 则开启单步执行调试模式&#xff0c;置0 则关闭。在单步执行模式下&#xff0c;处理器在每条指令后产生一个调试异常&#xff0c;这样在每条指令执行后都可以查看执行程序的状态。如果程序用POPF、POPFD 或者ET 指令设置TF 标志…

TCP多进程并发服务端 Linux socket编程入门(2)

这里很简单的使用了fork()函数&#xff0c;在执行了fork()以后的所有代码都会由子进程和父进程同时执行。 他们同时拥有相同的资源&#xff08;两份拷贝&#xff09;&#xff0c;所以在子进程执行的过程中&#xff0c;子进程需要先close掉listenfd&#xff08;监听套接字&#…

ArcEngine 打开shape文件

IWorkspaceFactory wsf new ShapefileWorkspaceFactory(); IWorkspace pWorkspace wsf.Open(filePath, 0) ;//filePath为shapefile所在的文件夹 IFeatureWorkspace pFeatureWorkspace pWorkspace ; IFeatureClass pFeatureClass pFeatureWorkspace.OpenFeatureClass(&quo…

Win32ASM学习[10]:传送指令

汇编指令的一般性要求: 1、两个操作数的尺寸必须一致; 2、操作数不能同为内存. --------------------------------------------------------------------------------------------------------------- ;mov ;该指令不影响 EFlags ;指令格式: (其中的 r、m、i 分别表示: 寄存器、…

SQL Server 中关于 @@error 的一个小误区

SQL Server 中关于 error 的一个小误区 原文:SQL Server 中关于 error 的一个小误区在SQL Server中&#xff0c;我常常会看到有些前辈这样写&#xff1a; if(error<>0)ROLLBACK TRANSACTION T elseCOMMIT TRANSACTION T 一开始&#xff0c;我看见别人这么写&#xff0c;我…

Win32ASM学习[11]:逻辑运算

--------------------------------------------------------------------------------------------------------------------------- 一.逻辑与运算指令 AND 格式: AND OPRD1,OPRD2其中目的操作数OPRD1为任一通用寄存器或存储器操作数.源操作数OPRD2为立即数、任一通用寄存器…

JavaScript消息框

1.警告框 function myTest(){alert("这里的内容会弹出");} 2.确认框 其返回的值是 true 或 false 。 function myTest(){confirm("这里的内容会弹出");} 3.提示框 prompt prompt(参数1&#xff0c;参数2)&#xff1a;其参数1 是显示提示要输入的信息&…