收藏 分享(赏)

面向对象程序语言设计TP3V1.0.ppt

上传人:dzzj200808 文档编号:3364705 上传时间:2018-10-18 格式:PPT 页数:30 大小:1.76MB
下载 相关 举报
面向对象程序语言设计TP3V1.0.ppt_第1页
第1页 / 共30页
面向对象程序语言设计TP3V1.0.ppt_第2页
第2页 / 共30页
面向对象程序语言设计TP3V1.0.ppt_第3页
第3页 / 共30页
面向对象程序语言设计TP3V1.0.ppt_第4页
第4页 / 共30页
面向对象程序语言设计TP3V1.0.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、第三章,用 Hello ACCP.NET 快速热身(三),2,本章任务,编写 Hello ACCP.NET 控制台应用程序 计算缴税后的工资 交换两个数 处理用户邮件地址 字符串分割后重新连接 输出个人档案 一个数转换为其他类型,3,本章目标,掌握 C# 中方法的定义和使用 掌握 C# 中参数的传递方式 掌握常用的 String 类的方法 能够进行常用数据类型之间的转换,4,C# 中的命名空间,using System; using System.Collections.Generic; using System.Text;namespace HelloACCP class Programst

2、atic void Main(string args) / ,系统定义的命名空间,自定义的命名空间,命名空间: 一种组织代码的方法代码及内容唯一标识,5,引用命名空间,using System; /引用 System 命名空间namespace HelloACCP class Programstatic void Main(string args) Console.WriteLine(“Hello ACCP .NET“); ,/不引用 System 命名空间 / using System; namespace HelloACCP class Programstatic void Main(st

3、ring args) / Console.WriteLine(“Hello ACCP .NET“);System.Console.WriteLine (“Hello ACCP .NET“); ,如果不使用using, 要使用完全限定名称,WriteLine() 方法的完全限定名称,使用 using 引用命名空间,示例1源代码,6,方法的基本概念,回顾:什么是方法?使用方法有什么好处?,类的行为,便于修改、增加可读性、可重用、封装,C# 中方法的定义形式:,访问修饰符 返回类型 方法名 ( 参数列表 ) / 方法的主体 ,public private,int double string void

4、 ,命名规范:单词首字母大写Pascal命名法,参数传递与Java有所不同,7,参数的值传递方式,工资计税的方法为:低于等于1600不计税,超出1600的部分按10%缴税,int pay; / 税前工资 float taxRate = 0.1f; / 税率 float afterTax; / 税后工资 Console.WriteLine(“请输入税前工资:“); pay = int.Parse(Console.ReadLine();if (pay = 1600) / 低于1600不缴税 afterTax = pay; else / 高于1600 部分按税率缴税 afterTax = pay -

5、 (pay - 1600) * taxRate; Console.WriteLine(“税前工资0,税后工资1“, pay, afterTax);,怎样用方法实现?,演示示例2:自定义方法计算税后工资,8,示例2代码分析,关键代码回顾:,示例2源代码,/ 此方法根据税前工资计算税后工资 private static float GetPay( int pay, float taxRate ) float afterTax;if (pay = 1600) / 低于1600不缴税afterTax = pay; else / 高于1600 部分按税率缴税afterTax = pay - (pay -

6、 1600) * taxRate; return afterTax; ,传入税前工资、税率,返回税后工资,9,为什么使用 ref,下面代码输出结果是什么?,static void Main(string args) int num1 = 5, num2 = 10; / 两个数字Console.WriteLine(“交换前两个数的值分别为:0和1“, num1, num2);Swap(num1, num2); / 交换两个数的值Console.WriteLine(“交换后两个数的值分别为:0和1“, num1, num2); / 交换两个数的方法 private static void Swap

7、(int num1, int num2) int temp; / 中间变量temp = num1;num1 = num2;num2 = temp; ,值传递不能保留参数的修改 要按引用传递,使用 ref,10,通过引用传递参数,ref 修饰参数: 调用方法后,参数值的更改仍然保留,演示示例3:使用 ref 交换两个数,11,示例 3 分析,static void Main(string args) Console.WriteLine(“交换前两个数的值分别为:0和1“, num1, num2);/ 交换两个数的值Swap(ref num1, ref num2);Console.WriteLin

8、e(“交换后两个数的值分别为:0和1“, num1, num2); ,/ 交换两个数的方法 private static void Swap(ref int num1, ref int num2) int temp; / 中间变量temp = num1;num1 = num2;num2 = temp; ,调用时也要使用 ref,12,两种传参方式的比较,调用方法,方法定义,ModifyValue( num1, ref num2);,ModifyValue( int param1, ref int param2) ;,调用前,num1=3,num2=5,param1=3,param2=5,方法中

9、修改:,调用后,param1=4,param2=6,num1=3,num2=6,调用,值传递,引用传递,13,IDE 使用技巧进阶,在示例3上演示:,使用 VS 的重构功能,重新提取方法,14,小结,比较两个数的大小,自定义比较两个整数大小的方法: 如果第一个数大,返回1 如果相等返回0 如果第一个数小,返回-1 在 Main() 方法中输入两个数,调用这个方法,参考答案,/ 比较两个数大小的方法 private static int Compare(int num1, int num2) if (num1 num2)return 1;else if (num1 = num2)return 0

10、;elsereturn -1; ,15,String常用方法,回顾:Java 中常用的字符串处理方法?,C# 中常用的字符串处理方法: Equals() :比较两个字符串的值是否相等 Join():连接字符串 Split():分割字符串 IndexOf():查找某个字符在字符串中的位置 SubString():从字符串中截取子字符串 ToLower():将字符串转换成小写形式 Trim():去掉字符串两边的空格 ,16,String 常用方法应用1,已有如下代码,按要求增加功能:,static void Main(string args) string email; / 电子邮件地址 Cons

11、ole.WriteLine(“请输入你的邮箱:“);email = Console.ReadLine();Console.WriteLine(“你的邮箱是 0“, email); ,需实现的功能: 1、 输入 yes 时,程序循环执行 2、 兼容以下各种形式 yes(YES、yes、 YeS ) 3、 提取邮箱的用户名,演示示例4:String 常用方法,17,String 常用方法应用2,输入一个字符串,输出每个单词,重新用下划线连接输出,使用 Split() 方法分割字符串 使用 Join() 方法连接字符串,演示示例5:字符串的分割和连接,18,Split()方法分割字符串,示例5代码分

12、析,splitStrings = inputString.Split( );,/ 将分割后的字符串使用下划线连接在一起 joinString = string.Join(“_“, splitStrings);,返回值为 字符串数组,字符串变量名,参数:分隔符(char型),返回字符串,静态方法,参数1:连接符 参数2:字符串数组,关键代码回顾:,示例5源代码,Join()方法连接字符串,19,Format() 方法,回顾两种输出字符串的方式:,string name = “王强“; Console.WriteLine(“我的名字是 “ + name + “,我的年龄是“ + 18);,stri

13、ng name = “王强“; Console.WriteLine(“我的名字是 0 ,我的年龄是1 “, name,18);,格式字符串,String 类的 Format() 方法用来格式化字符串,变量列表,演示示例6:输出个人档案,20,示例 6 代码分析,关键代码回顾:,示例6源代码,record = string.Format(“姓名:0n出生年月:1n身高:2n 血型:3n星座:4n最喜欢的食物:5“, name, birthday, height, bloodType, planet, favourFood);Console.WriteLine(“n这是你的个人档案:“); Con

14、sole.WriteLine(record);,参数与 WritLine() 方法相似,21,Format() 的语法小结,string myString = string.Format(“格式字符串“, 参数列表);,string myString = string.Format (“0 乘以 1 等于 2 “, 2, 3, 2*3);,格式字符串,代表,参数列表,2乘以3等于6,包括占位符x,22,小结,补充下划线处的占位符,输出五个成语,string yi = “一“; string er = “二“; string san = “三“; string word = string.For

15、mat(“独 _ 无 _,_ 心 _ 意,垂涎 _ 尺,略知 _ _,举_ 反 _“,yi, er, san); Console.WriteLine(word);,趣味编程:看谁写的巧!,参考答案,string yi = “一“; string er = “二“; string san = “三“; string word = string.Format( “独0无1,2心1意,垂涎2尺,略知01,举0反2“,yi, er, san); Console .WriteLine(word);,23,为什么需要类型转换,编译器要确切地知道数据的类型,int num = “123“ ;,整数,字符串,

16、需要类型转换!,编译出错,24,怎样进行隐式类型转换,隐式转换:自动类型转换,float,int,规则:对于数值类型,A的取值范围完全包含在B内,A,B,25,static void Main(string args) double score = 58.5; / 原始成绩int bonus = 2; / 加分int sum; / 总分sum = score + bonus; / 计算总分Console.WriteLine(sum);Console.ReadLine(); ,怎样进行显式类型转换,static void Main(string args) double score = 58.5

17、; int bonus = 2; int sum; sum = (int)score + bonus;Console.WriteLine(sum);Console.ReadLine(); ,明确告诉编译器转换类型注意:double (58.5)-int (58),精度可能丢失!,显式转换:强制类型转换,26,使用 Parse() 进行转换,字符串和数值型的互相转换,int,float,double,string,int.Parse( ),float.Parse( ),double.Parse( ),ToString(),必须是数字的 有效表示形式!,27,使用 Convert 类进行转换,使用

18、 Convert :Convert.ToXxx(object value),Convert.ToInt32(),Convert.ToSingle(),Convert.ToString(),double 85.63,string “85.63“,int 86,float 85.63,演示示例7:不同类型的相互转换,28,Parse 与 Convert,Xxx.Parse(string),目标类型的有效表示形式,Convert.ToXxx(object):,注:Xxx表示某种类型,字符串,其他类型,任意类型,其他类型,29,小结,类型转换有几种方式?,string myString = “Hell

19、o“; int myInt = int.Parse(myString);,double score = 59.3; int myInt = Convert.ToInt32 (score);,double score = 92.6; string myString = score.ToString( );,错误! 字符串不是有效的整数形式,转换成功! myString 为 “92.6“,转换成功,但精度丢失! myInt 为 59,下面各种转换的结果是什么?,30,总结,自定义方法由哪几部分构成? String 类的 Format() 方法的参数包括什么? Parse() 与 Convert 分别把什么类型转为什么类型?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报