软件开发技术--C[1].._第1页
软件开发技术--C[1].._第2页
软件开发技术--C[1].._第3页
软件开发技术--C[1].._第4页
软件开发技术--C[1].._第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 教学内容 课次安排C#.NET程序设计基础 2数据结构 67数据库技术 23软件开发实例 23软件工程 1教学安排计算机软件开发技术第一章第一章 C#.NETC#.NET程序设计基础程序设计基础1.1 C#.NET 1.1 C#.NET 概述概述 1.2 C#1.2 C#可视化界面设计可视化界面设计 1.3 C#1.3 C#基本语法基本语法 1.4 C# 1.4 C# 面向对象程序设计面向对象程序设计 1.5 1.5 程序调试程序调试 1.1 C#.NET 1.1 C#.NET 概述概述1.1.1 C#1.1.1 C#和和.NET.NET简介简介1.1.2 Visual Studio .NE

2、T 1.1.2 Visual Studio .NET 集成开发环境集成开发环境1.1.3 C# windows1.1.3 C# windows应用程序开发过程应用程序开发过程 1.1.1 C#.NET 1.1.1 C#.NET 简介简介 C Sharp 由由 Turbo Pascal, Delphi, and Visual J+Turbo Pascal, Delphi, and Visual J+的的首席设计师首席设计师Anders Hejlsberg Anders Hejlsberg 倾心倾心3 3年设计年设计 像像VBVB一样简单,像一样简单,像C+C+一样强大一样强大, ,像像JAVAJ

3、AVA一样安全一样安全 C#C#是第一流的面向是第一流的面向组件组件的语言的语言 所有的语言元素都是真正的对象所有的语言元素都是真正的对象 开发强壮和可重用的软件开发强壮和可重用的软件 所有的所有的.NET Framework.NET Framework中的基类库(中的基类库(Base Class Base Class LibraryLibrary)都用)都用C# C# 编写编写1.1.2 Visual Studio .NET 1.1.2 Visual Studio .NET 集成开发环境集成开发环境( (Integrated Development EnvironmentIntegrated

4、 Development Environment,IDEIDE ) )IDEIDE的好坏直接决定开发效率。的好坏直接决定开发效率。 每次启动每次启动Visual Studio.NETVisual Studio.NET,就会出现,就会出现一个默认的主页一个默认的主页. .通过单击主页提供的链接,可以快速打通过单击主页提供的链接,可以快速打开曾经建立的项目开曾经建立的项目. .通过页面上提供的链接切入联机帮助文通过页面上提供的链接切入联机帮助文档或进行信息搜索档或进行信息搜索. .可以对集成开发环境的配置进行修改。可以对集成开发环境的配置进行修改。 起始页起始页主窗口主窗口代码窗口代码窗口是实现程

5、序逻辑的窗口是实现程序逻辑的窗口 设计类在该窗口中进行设计类在该窗口中进行编写窗体控件事件在该窗口中进行编写窗体控件事件在该窗口中进行属性窗口属性窗口用于设置可视化窗体中控件对象的属性用于设置可视化窗体中控件对象的属性 解决方案资源管理器窗口解决方案资源管理器窗口组成组成.NET.NET应用程序的所有文件共同组成了项目的解决方应用程序的所有文件共同组成了项目的解决方案,并以树状结构图显示。案,并以树状结构图显示。项目文件项目文件(.(.csprojcsproj) ): 每个每个C#C#项目对应一个项目文件。项目对应一个项目文件。项目通常由引用文件和代码文件组成。项目通常由引用文件和代码文件组成

6、。代码文件代码文件(.(.cscs文件文件) .) .cscs文件是程序源码文件。文件是程序源码文件。 引用文件:引用文件: 每个每个C#C#项目都会自动引用项目都会自动引用系统定义的类库文件,如系统定义的类库文件,如System.DataSystem.Data。工具箱窗口工具箱窗口常用类别:常用类别: 所有所有WindowsWindows窗体:存放所有窗体窗体:存放所有窗体 设计所需控件。设计所需控件。公共控件:包含所有运行时可视化公共控件:包含所有运行时可视化的控件。的控件。容器:可视化的可作为容器的控件,容器:可视化的可作为容器的控件,并可在其内放置其他可视化控件。并可在其内放置其他可视

7、化控件。菜单和工具栏:窗体中的主菜单、菜单和工具栏:窗体中的主菜单、 工具栏和弹出式菜单控件。工具栏和弹出式菜单控件。 数据:与数据库相关的控件。数据:与数据库相关的控件。 1.1.3 C# windows1.1.3 C# windows应用程序开发过程应用程序开发过程建立和运行建立和运行C# WindowsC# Windows应用程序的步骤:应用程序的步骤:建立一个新项目建立一个新项目设计程序运行界面,向界面中添加控件对象设计程序运行界面,向界面中添加控件对象设置对象属性设置对象属性针对对象事件进行编程针对对象事件进行编程保存、调试、运行程序保存、调试、运行程序例:设计一个界面如图所示的求一

8、个整数的绝对值的程例:设计一个界面如图所示的求一个整数的绝对值的程序。在程序运行启动后,在标签序。在程序运行启动后,在标签“a”a”后面的文本框内输后面的文本框内输入一个整数,用户单击入一个整数,用户单击“calculate”calculate”按钮后,标签按钮后,标签“|a|”|a|”后面的文本框内显示该整数的绝对值。后面的文本框内显示该整数的绝对值。 创建创建C# C# 项目项目1.1.选择菜单选择菜单“文件文件”“新建新建”“项目项目”。2.2.选择选择“Visual Visual C#”C#”“Windows“Windows 应用程序应用程序”。3.3.输入项目名称,确定项目位置,单击

9、确定。输入项目名称,确定项目位置,单击确定。设计程序运行界面:设计程序运行界面: 从工具箱中向设计窗体中分别拖动如下控件:从工具箱中向设计窗体中分别拖动如下控件:两个两个LabelLabel(标签)控件(标签)控件两个两个TextBoxTextBox(文本框)控件(文本框)控件一个一个ButtonButton(命令按钮)控件。(命令按钮)控件。 控件名控件名属性名属性名属性值属性值Label1Label1TextTexta aLabel2Label2TextText|a|a|TextBox1TextBox1NameNametbatbaTextBox2TextBox2NameNametbabst

10、babsButton1Button1TextTextNameNamecalculatecalculatebtncalculatebtncalculate设置对象属性:设置对象属性: 控件的一般命名规则控件的一般命名规则 :控件类别的小写缩写控件类别的小写缩写+ +变量的物理意义变量的物理意义 如:控件如:控件TextBoxTextBox缩写为缩写为tbtb 控件控件ButtonButton缩写为缩写为btnbtn编写单击命令按钮编写单击命令按钮calculatecalculate事件代码:事件代码: private void btncalculate_Click(object sender,

11、EventArgs e) int a = int.Parse(tba.Text); if (a 0) a = -a; tbabs.Text = + a; /空串空串与与a a相加变成字符串相加变成字符串 a a 说明:说明:tba.Texttba.Text中的中的TextText为为TextBoxTextBox控件控件tbatba的的属性属性,该属性代表文本框中的内容。,该属性代表文本框中的内容。TextBoxTextBox控件中的内容都是字符串形式的。控件中的内容都是字符串形式的。int.Parse(tba.Text)int.Parse(tba.Text)中的中的ParseParse是是in

12、tint类类型的型的方法方法,其功能是将文本框,其功能是将文本框tbatba中的内容中的内容转换为转换为intint类型的数据。类型的数据。ParseParse方法的作用是将其后的参数值以其方法的作用是将其后的参数值以其作用对象的类型进行转换。作用对象的类型进行转换。1.2 C#1.2 C#可视化界面设计可视化界面设计 1.2.1 1.2.1 控件基本概念控件基本概念 1.2.2 1.2.2 窗体窗体 1.2.3 1.2.3 常用控件常用控件 1.2.1 1.2.1 控件基本概念控件基本概念控件分为可视化和非可视化两类,前者控件分为可视化和非可视化两类,前者运行时可在窗体界面中显示。运行时可在

13、窗体界面中显示。控件是类的图形化表示。控件是类的图形化表示。放置于设计窗体中的控件表示该控件代放置于设计窗体中的控件表示该控件代表的类的具体对象。表的类的具体对象。 控件对象的属性、方法和事件控件对象的属性、方法和事件 属性:属性:主要用于设置对象的状态。主要用于设置对象的状态。属性值可通过属性窗口直接设置。属性值可通过属性窗口直接设置。属性值也可通过程序代码更改:属性值也可通过程序代码更改: 对象名对象名. .属性名属性名 = = 值值; ; 如:如:tbabs.Text = + a;tbabs.Text = + a; 方法:方法:是对象的行为特征是对象的行为特征是对象本身内含的函数是对象本

14、身内含的函数如:如: TextBox1.Focus(); TextBox1.Focus();事件:是对象的一类事件:是对象的一类特殊方法特殊方法,用于对程,用于对程序运行过程中发生的指定事件进行响应,序运行过程中发生的指定事件进行响应,做出应答。常见的事件如单击做出应答。常见的事件如单击(Click)(Click)、键、键盘按下盘按下( (KeyPressKeyPress) )。 控件对象的通用属性控件对象的通用属性 Name:Name:属性值作为对象的标识属性值作为对象的标识( (也即变量名也即变量名) )在在程序中引用程序中引用不在窗体上显示不在窗体上显示Text:Text:决定控件对象在

15、窗体上显示的文本。决定控件对象在窗体上显示的文本。 Font:Font:控制窗体中控件的控制窗体中控件的TextText属性值的字体属性值的字体 容器类对象的容器类对象的FontFont属性,会自动传递给属性,会自动传递给容器内的所有对象。容器内的所有对象。 EnabledEnabled: 控制控件能否接受用户的响应。控制控件能否接受用户的响应。 如对按钮如对按钮button1button1,执行语句:,执行语句: button1.Enabled = false; button1.Enabled = false; 则程序运行时,该控件不响应用户则程序运行时,该控件不响应用户对其操作的任何事件。

16、对其操作的任何事件。VisibleVisible: 控制程序运行期间控件是否可见。控制程序运行期间控件是否可见。 将其设置为将其设置为falsefalse时,该控件不可见。时,该控件不可见。 1.2.2 1.2.2 窗体窗体是与用户交互的界面,是控件的容器。是与用户交互的界面,是控件的容器。 一个应用程序可创建多个窗体。一个应用程序可创建多个窗体。只有一个主窗体,程序启动时自动显示。只有一个主窗体,程序启动时自动显示。主窗体之外的其它窗体需要通过添加完成主窗体之外的其它窗体需要通过添加完成(“项目项目”“添加添加WindowsWindows窗体窗体” ” )每个窗体是一个类,需为其生成一个对象

17、每个窗体是一个类,需为其生成一个对象主窗体之外的其它窗体通过其主窗体之外的其它窗体通过其Show()Show()或或ShowDialogShowDialog()()方法进行显示。方法进行显示。 主要功能:用于显示文本主要功能:用于显示文本 重要属性:重要属性:TextText属性,属性,FontFont属性属性 1.2.3 1.2.3 常用控件常用控件LabelLabel(标签)(标签): :TextBoxTextBox(文本框):(文本框): 主要功能:主要功能:输入、显示、编辑文本。输入、显示、编辑文本。输入的信息以字符串输入的信息以字符串(String(String类型类型) )形式形式

18、保存在其保存在其TextText属性中。属性中。重要属性:重要属性:Text(Text(文本文本) ):文本框中的内容。:文本框中的内容。MultiLineMultiLine( (多行多行) ):值为:值为 true true 时,允许多行时,允许多行ScrollBarsScrollBars( (滚动条滚动条) ):用来设置滚动条模式:用来设置滚动条模式 ,只有当只有当MultiLineMultiLine属性为属性为truetrue时,该属性值才时,该属性值才有效。有效。 PasswordCharPasswordChar:允许设置一个字符,运行程:允许设置一个字符,运行程序时,将输入到序时,将

19、输入到 Text Text 的内容全部显示为该的内容全部显示为该属性值,从而起到保密作用,通常用来输入属性值,从而起到保密作用,通常用来输入口令或密码。口令或密码。 ReadOnlyReadOnly:指示文本框中的文本是否为只读。:指示文本框中的文本是否为只读。值为值为 truetrue时为只读。时为只读。常用方法:常用方法:ClearClear方法:从文本框控件中清除所有文方法:从文本框控件中清除所有文本。调用格式:本。调用格式: 文本框对象文本框对象.Clear();.Clear(); FocusFocus方法:将光标聚焦在该文本框中。方法:将光标聚焦在该文本框中。调用格式:调用格式: 文

20、本框对象文本框对象.Focus(); .Focus(); 按钮按钮 ButtonButton重要属性重要属性: :Text:Text:表明按钮任务的内容。表明按钮任务的内容。主要事件:主要事件:ClickClick:当鼠标单击该按钮后,程序将执:当鼠标单击该按钮后,程序将执行什么操作。行什么操作。 通常成组出现,以提供两个以上互斥选项。通常成组出现,以提供两个以上互斥选项。 在一组单选钮中只能选择一个单选框。在一组单选钮中只能选择一个单选框。主要属性:主要属性:TextText:单选按钮控件内显示的文本。:单选按钮控件内显示的文本。CheckedChecked:设置或返回单选按钮是否被选中,:

21、设置或返回单选按钮是否被选中, 选中时值为选中时值为truetrue,否则为,否则为falsefalse。单选按钮单选按钮 RadioButtonRadioButton常用事件:常用事件: ClickClick:当单击单选按钮时,把其:当单击单选按钮时,把其CheckedChecked属性值设置为属性值设置为truetrue。 用于罗列可供用户选择的项。用于罗列可供用户选择的项。主要属性和常用事件同单选按钮。主要属性和常用事件同单选按钮。复选框复选框CheckBoxCheckBox 组框组框 GroupBoxGroupBox容器控件容器控件用于为其他控件提供可识别的分组如,用于为其他控件提供可

22、识别的分组如,为为RadioButtonRadioButton控件分组。控件分组。主要属性主要属性:Text:代表这组控件的类别。:代表这组控件的类别。【例例】当单击当单击“确定确定”按钮后,在下边的文本框中显示按钮后,在下边的文本框中显示有关信息有关信息。控件名控件名属性名属性名属性值属性值TextBox1TextBox1NameNametbnametbnameTextBox2TextBox2NameNametbinftbinfGroupBox1GroupBox1TextText性别性别GroupBox2GroupBox2TextText职称职称RadioButton1RadioButton

23、1NameNameTextTextrdbrdbm m男男RadioButton2RadioButton2NameNameTextTextrdbrdbf f女女RadioButton3RadioButton3NameNameTextTextrdblrdbl讲师讲师RadioButton4RadioButton4NameNameTextTextrdbrdbvpvp副教授副教授RadioButton5RadioButton5NameNameTextTextrdbrdbp p教授教授主要对象属性(非全部)设置:主要对象属性(非全部)设置: private void button1_Click(obje

24、ct sender, EventArgs e) if (rdbf.Checked) tbinf.Text = tbname.Text + 女; else tbinf.Text = tbname.Text + 男; if (rdbl.Checked) tbinf.Text += 讲师; else if (rdbvp.Checked) tbinf.Text += 副教授; else tbinf.Text += 教授; 【例例】当单击当单击“确定确定”按钮后,在右边的文本框中显示按钮后,在右边的文本框中显示有关信息有关信息。控件名控件名属性名属性名属性值属性值TextBox1TextBox1Name

25、NametbnametbnameTextBox2TextBox2NameNametbhobtbhobGroupBox1GroupBox1TextText爱好爱好CheckBox1CheckBox1NameNameTextTextcbscbs运动运动CheckBox2CheckBox2NameNameTextTextcbtpcbtp摄影摄影CheckBox3CheckBox3NameNameTextTextcbmcbm音乐音乐CheckBox4CheckBox4NameNameTextTextcbpcbp话剧话剧主要对象属性(非全部)设置:主要对象属性(非全部)设置: private void

26、btnok_Click(object sender, EventArgs e) tbhob .Text =tbname .Text+爱好: ; if (cbs.Checked) tbhob.Text += 运动; if (cbtp.Checked) tbhob.Text += 摄影; if (cbm.Checked) tbhob.Text += 音乐; if (cbp.Checked) tbhob.Text += 话剧; 列表框列表框ListBoxListBox 显示一个项目列表供选择,支持单选和多选。显示一个项目列表供选择,支持单选和多选。常用属性:常用属性: ItemsItems属性:存放

27、列表框中的列表项。属性:存放列表框中的列表项。SelectedIndexSelectedIndex:被选择项的序号,首项为:被选择项的序号,首项为0 0 Text Text :当前被选定项的文本:当前被选定项的文本 Count Count :总项数:总项数 组合框组合框 ComboBoxComboBox 将文本框和列表框的特性组合在一起的控件。将文本框和列表框的特性组合在一起的控件。在列表中选择一项,则该项内容自动装入文在列表中选择一项,则该项内容自动装入文本框中本框中(Text(Text属性中属性中) )当输入内容为多项选择之一时,使用该控件当输入内容为多项选择之一时,使用该控件不支持多选不

28、支持多选 常用属性同列表框常用属性同列表框列表框和组合框的主要方法列表框和组合框的主要方法 属性属性 作用作用 Items.AddItems.Add( (新选项新选项) ) 把一个新选项加到把一个新选项加到选项的最后选项的最后 Items.RemoveItems.Remove( (选项选项) ) 从列表框或组合框从列表框或组合框中删除指定项中删除指定项 Items.RemoveAt(IndexItems.RemoveAt(Index) ) 删除删除IndexIndex指定的指定的选项选项 Items.Insert(indexItems.Insert(index, ,新项新项) ) 在在inde

29、xindex位置插入位置插入新项新项 Items.ClearItems.Clear() () 清空列表框或组合清空列表框或组合框框 【例例】“添加添加”:将文本框中的内容添加到列表框:将文本框中的内容添加到列表框“删除删除”:删除列表框中选定的选项:删除列表框中选定的选项“修改修改”:将选定的待修改内容显示在文本框中:将选定的待修改内容显示在文本框中 “修改确定修改确定”:用文本框中的新内容修改列表框:用文本框中的新内容修改列表框中中选定项选定项 控件名控件名属性名属性名属性值属性值TextBox1TextBox1NameNametbctbcListBox1ListBox1NameNameIt

30、emsItemsLbcLbcC/C+C/C+VBVB大学计算机基础大学计算机基础数据库技术数据库技术软件开发技术软件开发技术Button1Button1NameNamebtnaddbtnaddButton2Button2NameNamebtndelbtndelButton3Button3NameNamebtnmodbtnmodButton4Button4NameNamebtnokbtnok主要对象属性(非全部)设置:主要对象属性(非全部)设置: private void btnadd_Click(object sender, EventArgs e)/添加添加 lbc.Items.Add(tb

31、c.Text);private void btndel_Click(object sender, EventArgs e) /删除删除 lbc.Items.Remove(lbc .Text ); private void btnmod_Click(object sender, EventArgs e) /修改修改 tbc.Text = lbc.Text; private void btnok_Click(object sender, EventArgs e) /修改确定修改确定 int n=lbc.SelectedIndex; lbc.Items.RemoveAt(n); lbc.Items.

32、Insert(n, tbc.Text); 【例例】“单击单击“确定确定”按钮,在按钮,在“订购订购”后的文本框中后的文本框中显示选中的品牌和数量显示选中的品牌和数量 。private void button1_Click(object sender, EventArgs e)private void button1_Click(object sender, EventArgs e) tbb.Text = tbb.Text = 品牌品牌: + cbb.Text +rn: + cbb.Text +rn数量数量: + tba.Text; : + tba.Text; 控件名控件名属性名属性名属性值属性

33、值TextBox1TextBox1NameNametbtba aComboBox1ComboBox1NameNameItemsItemscbccbc清华同方清华同方北大方正北大方正联想联想DELLDELLTextBox2TextBox2NameNameMultiLineMultiLineTbbTbbtruetrue主要对象属性(非全部)设置:主要对象属性(非全部)设置: 控件名控件名属性名属性名属性值属性值TextBox1TextBox1NameNametbbtbbComboBox1ComboBox1NameNameItemsItemsLbcLbcC/C+C/C+VBVB大学计算机基础大学计算

34、机基础数据库技术数据库技术软件开发技术软件开发技术Button1Button1NameNamebtnaddbtnaddButton2Button2NameNamebtndelbtndelButton3Button3NameNamebtnmodbtnmodButton4Button4NameNamebtnokbtnok主要对象属性设置:主要对象属性设置: 于是,研制人员想了个办法解决这个问题,于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一就是在每行后面加两个表示结束的字符。一个叫做个叫做“回车回车”,告诉打字机把打印头定位,告诉打字机把打印头定位在左边界;另一个叫做

35、在左边界;另一个叫做“换行换行”,告诉打字,告诉打字机把纸向下移一行。机把纸向下移一行。 这就是这就是“换行换行”和和“回车回车”的来历后来的来历后来,计算机发明了,这两个概念也就被般到了,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。个就可以。于是,就出现了分歧。 在计算机还没有出现之前,有一种叫做电传打字机的玩在计算机还没有出现之前,有一种叫做电传打字机的玩意,每秒钟可以打意,每秒钟可以打1010个字符。但是它有一个问题

36、,就是个字符。但是它有一个问题,就是打完一行换行的时候,要用去打完一行换行的时候,要用去0.20.2秒,正好可以打两个秒,正好可以打两个字符。要是在这字符。要是在这0.20.2秒里面,又有新的字符传过来,那秒里面,又有新的字符传过来,那么这个字符将丢失。么这个字符将丢失。小知识回车和换行的区别小知识回车和换行的区别Unix Unix 系统里,每行结尾只有系统里,每行结尾只有“ ”,即即“n”n”;WindowsWindows系统里面,每行结尾是系统里面,每行结尾是“ ” ” ,即,即“ rnrn”;MacMac系系统里,每行结尾是统里,每行结尾是“ ”。一个直接。一个直接后果是,后果是,Uni

37、x/MacUnix/Mac系统下的文件在系统下的文件在WindowsWindows里打开的话,所有文字会变成一行;而里打开的话,所有文字会变成一行;而WindowsWindows里的文件在里的文件在Unix/MacUnix/Mac下打开的话,下打开的话,在每行的结尾可能会多出一个在每行的结尾可能会多出一个MM符号。符号。富文本框富文本框 RichTextBoxRichTextBox 既可输入、又可编辑文本的文字处理控件。既可输入、又可编辑文本的文字处理控件。比比TextBoxTextBox的文字处理功能更加丰富。的文字处理功能更加丰富。可以打开、编辑和存储可以打开、编辑和存储.rtf .rtf

38、 、ASCIIASCII等格等格式文件。式文件。常用属性:常用属性:基本具有基本具有TextBoxTextBox 控件所具有的所有属性。控件所具有的所有属性。其它属性使用中再介绍。其它属性使用中再介绍。列表视图和菜单控件开发实例一章做介绍列表视图和菜单控件开发实例一章做介绍1.3 C#1.3 C#基本语法基本语法 C#C#表达上与表达上与C+C+非常相似,此处将主要的不同用法做非常相似,此处将主要的不同用法做一介绍。一介绍。一、数组一、数组1 1、声明方式不同:、声明方式不同:方括号被置于数据类型之后而不是在数方括号被置于数据类型之后而不是在数组名之后。组名之后。一维数组一维数组 格式:格式:

39、 类型类型 数组名数组名如:如:intint num1; /num1 num1; /num1是整型数组是整型数组 string book; string book; 此处此处bookbook是字符串数组,每个元素是一是字符串数组,每个元素是一个字符串,个字符串, stringstring是字符串类型。是字符串类型。二维数组格式二维数组格式 : 类型类型, , 数组名数组名如:如:intint , num2; / , num2; / 定义一个两维数组定义一个两维数组2 2、创建数组元素要使用、创建数组元素要使用newnew操作符操作符 double d = new double10; doubl

40、e d = new double10; intint , num = new int6,6; , num = new int6,6; 3 3、不能访问超出数组边界的元素,较、不能访问超出数组边界的元素,较C+C+更安全更安全4 4、 foreachforeach语句语句可用来遍历数组。但不需要显式考虑数组中元素可用来遍历数组。但不需要显式考虑数组中元素的个数。格式为:的个数。格式为: foreachforeach( (元素类型元素类型 变量名变量名 in in 数组数组) ) 语句组语句组 int, a = new int3,3;int, a = new int3,3; int s=0;int

41、 s=0; for (int i = 0; i 3; i+) for (int i = 0; i 3; i+) for (int j = 0; j 3; j+) for (int j = 0; j 3; j+) ai,jai,j = i = i * * 3 + j; 3 + j; foreach (int d in a) foreach (int d in a) s = s + d;s = s + d;/该程序段将二维数组该程序段将二维数组a a的累加和存放在变量的累加和存放在变量s s中中, ,注意二维数组的表达与注意二维数组的表达与C C语言中的不同。语言中的不同。intdataintda

42、ta = new int3 1, 10, 20 ; = new int3 1, 10, 20 ;/等价于等价于intint data=1,10,20 data=1,10,20intint s=0; s=0;foreachforeach ( (intint i in data) i in data) s= s=s+is+i /该程序段将数组该程序段将数组datadata的累加和存放在变量的累加和存放在变量s s中中 二、函数二、函数1 1、基础类库函数的使用、基础类库函数的使用弄清所要使用的类库函数所属的类弄清所要使用的类库函数所属的类弄清该类所在的名字空间弄清该类所在的名字空间引用该名字空间以

43、使用其中的类引用该名字空间以使用其中的类如:将如:将100100的平方根存放于变量的平方根存放于变量d d中。中。double d = System.Math.Sqrt(100);double d = System.Math.Sqrt(100);或:或:Using SystemUsing System; double d = Math.Sqrt(100)double d = Math.Sqrt(100) ; ; 说明:说明:在在C#C#中,平方根函数中,平方根函数SqrtSqrt是是MathMath类的一个方法类的一个方法MathMath类是在类是在SystemSystem名字空间中名字空间中

44、上述代码中的第一种方式称为函数的直接引用,上述代码中的第一种方式称为函数的直接引用,格式为:格式为: 名字空间名名字空间名. .类名类名. .方法名(参数)方法名(参数)第二种方式通过第二种方式通过UsingUsing语句语句 ,格式为:,格式为: Using Using 名字空间名字空间 ;/;/位于程序的开头位于程序的开头 类名类名. .方法名(参数)方法名(参数) 2 2、参数传递、参数传递传值调用中,函数无法将改变的形参值带给传值调用中,函数无法将改变的形参值带给实参。实参。C/C+C/C+中采用传址和引用调用将改变的形参中采用传址和引用调用将改变的形参值带给实参。值带给实参。C#C#

45、中取消了指针的概念,而引用调用的表达中取消了指针的概念,而引用调用的表达也不同于也不同于C/C+C/C+ 。引用的具体用法:引用的具体用法: 使用关键字使用关键字outout或或refref。 outout或或refref要同时出现在形参和实参中。要同时出现在形参和实参中。 outout和和 refref的区别:的区别:使用使用refref,要求实参在调用前要先有初值,要求实参在调用前要先有初值,而使用而使用outout则不必。如:则不必。如:intint i; i; SomeMethodSomeMethod( ref i ); /( ref i ); /错误错误 intint i; i; S

46、omeMethodSomeMethod( out i ); /( out i ); /正确正确refref传进去的参数在函数内部可以直接使传进去的参数在函数内部可以直接使用,而用,而outout传进去的参数则不可以。如:传进去的参数则不可以。如:public void public void SomeMethod(refSomeMethod(ref intint i) i) intint j=i; / j=i; /正确正确public void public void SomeMethod(outSomeMethod(out intint i) i) intint j=i; j=i; / /错

47、误错误 refref传进去的参数在函数内部可以不被修改,传进去的参数在函数内部可以不被修改,但但outout必须在离开函数体前进行赋值。必须在离开函数体前进行赋值。三、命名空间三、命名空间namespace命名空间建立了代码的组织结构。命名空间建立了代码的组织结构。新建一个新建一个C#C#项目时,系统会自动为用户项目时,系统会自动为用户定义一个与工程名同名的定义一个与工程名同名的命名命名空间。空间。一个一个命名命名空间中可以包含多个类。空间中可以包含多个类。 C#C#中,中,所有的函数都必须在类中定义所有的函数都必须在类中定义(不会出现类之外的独立函数),(不会出现类之外的独立函数),而任意而

48、任意一个类又都是包含在某个命名空间中。一个类又都是包含在某个命名空间中。命名空间可以嵌套。命名空间可以嵌套。namespace namespace 命名空间名命名空间名 class A class A class B class B 定义定义命名命名空间的格式:空间的格式:引用命名空间的类的声明方式:引用命名空间的类的声明方式:using using 命名空间名命名空间名; ;命名空间里,包含与被包含的关系用操作命名空间里,包含与被包含的关系用操作符(符(.)来表示,如:)来表示,如: C#中,将所有窗体中,将所有窗体控件类都定义在如下命名空间中:控件类都定义在如下命名空间中:System.W

49、indows.FormsSystem.Windows.Forms常用名字空间常用名字空间 、类、类 、函数、函数类别类别名字空间名字空间空间中部分类空间中部分类说明说明基本数基本数据据类类型型SystemSystemMath, String, Math, String, ConsoleConsole提供基本的算术函数,字符提供基本的算术函数,字符串处理,输入输出等串处理,输入输出等用户图用户图形形界界面面System.WindowSystem.Windows.Formss.FormsButton, Form, Button, Form, TextBoxTextBoxWindowsWindows

50、窗口程序中的控件窗口程序中的控件数据数据System.Data.OSystem.Data.OldDbldDbOleDbCommandOleDbCommandOleDbConnectiOleDbConnectiononADO.NETADO.NET连接操作数据库的连接操作数据库的各种类对象各种类对象集合数集合数据据结结构构System.CollecSystem.CollectionstionsArrayListArrayList, , LinkedListLinkedList常见数据结构类常见数据结构类1.4 C# 1.4 C# 面向对象程序设计面向对象程序设计1.4.1 1.4.1 面向对象编程

51、基本概念面向对象编程基本概念 .2类定义类定义 1.4.3 1.4.3 继承继承 对象:对象:现实世界的客观实体,具有属性和行为。现实世界的客观实体,具有属性和行为。属性用来描述一个对象的静态特征。属性用来描述一个对象的静态特征。 行为则描述一个对象的动作。行为则描述一个对象的动作。 类:类:对同一类事物的共性特征的抽象。对同一类事物的共性特征的抽象。1.4.1 1.4.1 面向对象编程基本概念面向对象编程基本概念 二者关系:二者关系:类是对象的抽象,而对象是类的具体实例。类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体类是抽象的,不占用内存,而对象是

52、具体的,占用存储空间。的,占用存储空间。 封装:封装:把属性和方法归纳到一个整体中,形成一个完整把属性和方法归纳到一个整体中,形成一个完整意义上的对象意义上的对象 。继承:继承:类间的层次关系。通过继承父类来实现子类,类间的层次关系。通过继承父类来实现子类,使子类获得父类中已经定义的可被继承的内使子类获得父类中已经定义的可被继承的内容,增强代码的可重用性。容,增强代码的可重用性。多态:多态:是基类中定义的方法,被具体派生类继承之是基类中定义的方法,被具体派生类继承之后,拥有不同的行为。面向对象的程序设计后,拥有不同的行为。面向对象的程序设计允许以一个抽象的基础类来定义一个对象,允许以一个抽象的

53、基础类来定义一个对象,而以一个派生类来具体地生成一个对象。而以一个派生类来具体地生成一个对象。 .2类定义类定义 访问修饰符访问修饰符类修饰符类修饰符 classclass ClassNameClassName 访问属性访问属性 修饰符修饰符 属性定义属性定义 构造方法定义构造方法定义 访问属性访问属性 修饰符修饰符 其他方法的定义其他方法的定义 类的访问修饰符类的访问修饰符, ,控制类可被访问的范围。控制类可被访问的范围。如如:public:public,privateprivate,internal internal ,默认为,默认为internalinternal 。类修

54、饰符,说明类的类型,如类修饰符,说明类的类型,如: abstract: abstract,staticstatic。类成员访问属性,控制成员可被访问的范围。类成员访问属性,控制成员可被访问的范围。如:如:publicpublic和和privateprivate和和protectedprotected用法同用法同C+C+,一般,属性成员的,一般,属性成员的访问权限为访问权限为privateprivate,而成员方法的访问权限为,而成员方法的访问权限为publicpublic 。类成员修饰符,说明成员的类型。类成员修饰符,说明成员的类型。如:如:abstractabstract,staticsta

55、tic,virtualvirtual。暂不展开讨论各种修饰符,后续需要时再个别展开介绍。暂不展开讨论各种修饰符,后续需要时再个别展开介绍。说明:说明:不同于不同于C+C+的是,访问权限要对不同的方法和不的是,访问权限要对不同的方法和不同类型的属性一一说明。同类型的属性一一说明。如:如:public void input();public void input();public void public void getvaluegetvalue(); (); 构造方法:又称构造函数,同构造方法:又称构造函数,同C+C+,是个无函数,是个无函数类型,与类同名,可重载的特殊函数,功能是类型,与类同名

56、,可重载的特殊函数,功能是初始化各属性(数据成员)的值。初始化各属性(数据成员)的值。设计一个类的步骤设计一个类的步骤: : 分析并描述出类的属性分析并描述出类的属性 设计类的构造函数设计类的构造函数, , 初始化类的各属性,初始化类的各属性,以生成一个具体对象。以生成一个具体对象。 分析类的行为,设计类的不同方法分析类的行为,设计类的不同方法【例例】设计一个圆类,该类具有求圆的面积和周长的功能。设计一个圆类,该类具有求圆的面积和周长的功能。分析:描述一个圆的特征的属性应该是圆的半径,从题意分析:描述一个圆的特征的属性应该是圆的半径,从题意中得知,除了构造函数外,该类还具有求圆面积和周长两中得

57、知,除了构造函数外,该类还具有求圆面积和周长两个方法,故设计类如下:个方法,故设计类如下:class Circleclass Circle double r; double r; public public Circle(doubleCircle(double r)/ r)/构造函数构造函数 this.rthis.r = r = r ; ; public double public double getAreagetArea() () return 3.14 return 3.14 * * r r * * r r ; ; public double public double getGirth

58、getGirth() () return 2 return 2* *3.14 3.14 * * r ; r ; 说明:说明:这里这里thisthis是指生成的对象本身,通过是指生成的对象本身,通过thisthis的使的使用,能够区分开对象的属性用,能够区分开对象的属性r r和形式参数和形式参数r r。一般:一般:在类的构造函数中,在类的构造函数中,thisthis代表正在构造的对象代表正在构造的对象本身。本身。在类的方法中出现的在类的方法中出现的thisthis代表调用方法作用的代表调用方法作用的对象。对象。【例例】设计一个复数类设计一个复数类Sample,Sample,具有实现两个复数具有实

59、现两个复数相乘运算的功能。相乘运算的功能。 分析:描述一个分析:描述一个复数复数特征的属性应该是特征的属性应该是复数的实复数的实部和虚部部和虚部,从题意中得知,除了构造函数外,该,从题意中得知,除了构造函数外,该类还具有求两个复数乘积的功能,故设计类如下:类还具有求两个复数乘积的功能,故设计类如下:class Sampleclass Sample double re, im; double re, im; public Sample() public Sample() public Sample(double re, double im) public Sample(double re, do

60、uble im) this.re = re; this.im = im; this.re = re; this.im = im; public void getProduct(Sample s1, Sample s2) public void getProduct(Sample s1, Sample s2) this.re = s1.re this.re = s1.re * * s2.re - s1.im s2.re - s1.im * * s2.im; s2.im; this.im = s1.re this.im = s1.re * * s2.im + s2.re s2.im + s2.re

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论