吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 2253|回复: 5

[C#] C#初级开发原创教程十一课 类的无参方法

[复制链接]
王尼玛 发表于 2014-10-18 00:17 | 显示全部楼层 |阅读模式

本帖最后由 王尼玛 于 2014-10-24 01:16 编辑

大家好,我是王尼玛。今天起我给大家讲解C#开发教程,本次是第十一课。大家在课后有什么疑问可以跟帖留言,我会尽我所能来解答。毕竟众口难调,大家有什么建议也可以跟帖告诉我。
此教程为本人原创,转载请注明"吾爱汇编论坛王尼玛原创"
好了,废话不多说,开始今天的学习.

有朋友说不太明白我写的教程,其实编程这东西很简单,一个字,练!你光看我写的多半是一头雾水,因为你没实际跟着我讲的代码去操作,你要跟着我的代码敲,多敲代码,多练习我给的例子,再配合我例子后面的讲解,自然就明白我讲的是什么了.还不明白?跟帖问吧



1.什么是类的方法
类是由一组相同属性和共同行为的实体抽象而来的.对象执行的操作是通过编写类的方法实现的.显而易见,类的方法是一个功能模块,其作用是"做一件事情".例如,在童年时代,你可能玩过电动玩具,下图是一只"电动玩具狮子",在他身上有两个按钮,如果按动按钮,狮子就会跑或叫
QQ图片20141017210632.jpg
下面就创建一个电动狮子类(AutoLion)类,他的属性和行为如下:
  1. string color = "黄色";

  2.         /// <summary>
  3.         /// 跑的方法
  4.         /// </summary>
  5.         public void run()
  6.         {
  7.             Console.WriteLine("正在以0.1米/秒的速度向前奔跑");
  8.         }
  9.         /// <summary>
  10.         /// 叫的方法
  11.         /// </summary>
  12.         /// <returns>叫声</returns>
  13.         public string bark()
  14.         {
  15.             string sound = "大声吼叫";
  16.             return sound;
  17.         }
复制代码
在上面这个代码中,AutoLion类定义了两个行为("跑"和"叫")在玩电动玩具时,我们只要按动"奔跑"按钮,电动狮子就能跑,但是你是否思考过它为什么能跑?其实,他为什么能跑是生产电动狮子厂商思考的问题,我们不需要知道电动玩具的内部构造,只要按动这个按钮就可以了.电动玩具能跑能叫的内部实现就相当于类中的方法,这样的优点正是类提供给我们的
每一个类的方法都定义了一个功能.例如上节课我们编写的showCenter()方法,他的作用就是输出中心的信息,创建类的对象后,我们可以直接调用这个方法,而不再去考虑这个方法是如何实现的.同样,对于上面这个例子定义的run()方法和bark()方法,我们也可以直接调用.可见,类的方法定义了类的某种行为(功能),而且方法的具体实现封装在类中,实现了信息隐藏

2.如何定义类的方法
类的方法必须包括以下三个部分:
  • 方法的名称
  • 方法的返回值类型
  • 方法的主体
语法:
  1. public 返回值类型 方法名(){
  2.        //方法的主体
  3. }
复制代码
通常,编写方法时,分两步完成.
第一步,定义方法名和返回值
第二部,在{}中编写方法的主体部分
在编写方法时,要注意以下三点
  • 方法体在一对大括号中.方法体就是一段程序代码,完成一定的工作
  • 方法名主要在调用这个方法时使用
  • 方法执行后可能会返回一个结果,该结果的类型称为返回值类型.使用return语句返回值
语法:
  1. return 表达式;
复制代码
比如在bark()方法中,返回值类型是string类型,因此在方法体中必须使用return返回一个字符串
如果方法没有返回值,则返回值类型为void,比如run()方法没有返回值,所以返回值类型为void
因此,在编写程序时一定要注意方法声明中返回值类型和方法体中真正返回值类型是否匹配,如果不匹配,编译器就会报错
其实这里的return语句是跳转语句的一种,他主要做两件事情:
  • 跳出方法
  • 给出结果.如果方法产生一个值,这个值放在return后面,即<表达式>部分


3.方法调用
语法:
  1. 对象名.方法名();
复制代码
类是程序的基本单元.每个对象需要完成特定的应用程序功能.当需要某一对象执行一项特定操作时,通过调用该对象的方法来实现.另外,在类中,类的不同成员方法之间也可以互相调用.接下来,我们就来实现下面的问题
问题:
小明过生日,爸爸送给他一个电动狮子玩具,编写程序测试这个狮子能否正常工作(能跑,会叫,显示颜色)
分析:
现在要模拟电动狮子的过程.按动控制狮子叫的按钮,他就会发出叫声,按动控制狮子跑的按钮,狮子就会奔跑.因此,根据要求,需要定义两个类,电动狮子类(AutoLion)和测试类(TestLion).其中TestLion类中定义程序入口(main方法),检测跑和叫的功能是否可以正常运行

电动狮子类:
  1. class AutoLion
  2.     {
  3.         string color = "黄色";

  4.         /// <summary>
  5.         /// 跑的方法
  6.         /// </summary>
  7.         public void run()
  8.         {
  9.             Console.WriteLine("正在以0.1米/秒的速度向前奔跑");
  10.         }
  11.         /// <summary>
  12.         /// 叫的方法
  13.         /// </summary>
  14.         /// <returns>叫声</returns>
  15.         public string bark()
  16.         {
  17.             string sound = "大声吼叫";
  18.             return sound;
  19.         }
  20.         /// <summary>
  21.         /// 获取颜色
  22.         /// </summary>
  23.         /// <returns></returns>
  24.         public string getColor()
  25.         {
  26.             return color;
  27.         }
  28.         /// <summary>
  29.         /// 显示狮子特性
  30.         /// </summary>
  31.         /// <returns></returns>
  32.         public string showLion()
  33.         {
  34.             return "这是一个"+getColor()+"的玩具狮子";
  35.         }
  36.     }
复制代码
测试类:
  1. class TestLion
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             AutoLion lion = new AutoLion();//创建AutoLion对象
  6.             Console.WriteLine(lion.showLion());//调用方法显示类信息
  7.             lion.run();
  8.             Console.WriteLine(lion.bark());
  9.             Console.ReadKey();
  10.         }
  11.     }
复制代码
运行结果:
QQ截图20141017235414.png

在这个示例中看到,类中的成员方法相对独立地完成了某个应用程序功能,他们之间可以互相调用,调用时仅仅使用成员方法的名称.比如方法getColor()的功能是获得电动狮子的颜色,在showLion()方法中可以直接调用
  1. return "这是一个"+getColor()+"的玩具狮子";
复制代码
showLion()是类的方法成员,因此它可以直接调用这个类的另一个方法成员getColor(),调用时直接引用方法的名称getColor()就可以了
但是,其他类的方法要调用AutoLion类的成员方法时,就必须首先创建这个类的一个对象,然后才能通过点运算符使用它的成员方法
  1. AutoLion lion = new AutoLion();
  2. lion.run();
复制代码
总之,凡涉及类的方法调用,均使用如下两种形式
  • 同一个类中的方法,直接使用方法名调用该方法
  • 不同类的方法,首先创建对象,再使用"对象名.方法名()"来调用


这节课就到这,谢谢大家


王尼玛C#初级开发原创教程目录:
1.C#初级开发原创教程第一课  Visual Studio 2013的安装
2.C#初级开发原创教程第二课 控制台的输出
3.C#初级开发原创教程第三课 数据类型转换
4.C#初级开发原创教程第四课 深入控制台应用程序
5.C#初级开发原创教程第五课 bool类型,关系运算符与if选择结构
6.C#初级开发原创教程第六课 复杂选择结构
7.C#初级开发原创教程第七课  循环结构(一)
8.C#初级开发原创教程第八课 循环结构(二)
9.C#初级开发原创教程第九课 数组
10.C#初级开发原创教程第十课 面向对象之类和对象
11.C#初级开发原创教程十一课 类的无参方法
12.C#初级开发原创教程十二课 带参数的方法(一)
13.C#初级开发原创教程第十三课 字符串的操作


评分

参与人数 12HB +28 THX +11 收起 理由
29590 + 1
消逝的过去 + 1
zxjzzh + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
agan8888 + 1
ldljlzw + 1
EMT + 1 + 1
ding520 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
playboy + 1
XiaoWeiSec + 1
wdujs600 + 1 + 1 好人有好报!你的热心我永远不忘!谢谢!
zx2cwf + 5 + 1 我很赞同!
Shark恒 + 20 + 1 你将受到所有人的崇拜!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2014-10-18 00:22 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 王尼玛 发表于 2014-10-18 00:28 | 显示全部楼层

Shark恒 发表于 2014-10-18 00:22
感谢尼玛,别惦记论坛先去照顾阿姨!

已经好些了,谢谢恒大关心
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
zx2cwf 发表于 2014-10-18 09:30 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
luozh7682 发表于 2015-8-28 10:05 | 显示全部楼层

谢谢分享,讲得很好,收藏学习。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
af521 发表于 2022-11-21 15:33 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表