C#程序设计基础 $3 成员、变量和常量.

Slides:



Advertisements
Similar presentations
第 12 章 命 名 空 间 (时间: 1 次课, 2 学时)
Advertisements

3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
项目7 面向对象高级.
项目6 通用堆栈.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
四資二甲 第三週作業 物件導向程式設計.
第7章 C#函數與.NET Framework類別函數庫
设计模式可以帮助我们改善系统的设计,增强 系统的健壮性、可扩展性,为以后铺平道路。
類別與物件 Class & Object.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
C#程序设计基础 $5 流程控制.
C#程序设计 c# programming 泛型 C#程序设计课程组.
第四章 在 C# 中实现 OOP 概念.
淺談Visual C# 程式設計 國立台灣師大附中 李啟龍 Jason.
程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通.
教材 《C++程序设计》.谭浩强. 清华大学出版社 王雪晶
C#程序设计 c# programming 多线程 C#程序设计课程组.
第三章 C#面向对象初级编程 面向对象得程序设计越来越受到编程人员的喜爱。类和对象是面向对象程序设计中的重要概念。封装性、继承性和多态性是面向对象的特点,本章旨在全面说明C#编写面向对象程序设计的方法。
程式設計實作.
C++ with Managed Extensions
第2章回顾 标识符:不用记,动手 关键字:if, else, switch, for, while, do, break, continue, void, …… 局部变量和成员变量 ①变量作用域 ②内存布局 基本数据类型 ①4类8种 ②互相转换 流程控制语句 ①分支 if……else, switch.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
程序设计期末复习 黎金宁
第9章 多线程 王德俊 上海交通大学继续教育学院.
第4章 数组和集合 4.1 一维数组 4.2 二维数组 4.3 Array类 4.4 交错数组 4.5 ArrayList类
C#面向对象程序设计 $7 继承和多态性.
并发机制 结果应该为: 线程 1: 1 线程 1: 2 线程 1: 3 线程 1: 4 线程 1: 5 线程 2: 6 线程 2: 7
$16 进程和线程. $16 进程和线程 进程 进程 属性 ProcessName / Id MachineName / MainModule BasePriority StartTime / ExitTime TotalProcessorTime / UserProcessorTime PrivateMemorySize64.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
Ch02-基礎語法.
C/C++/Java 哪些值不是头等程序对象
$10 可空类型.
C#程序设计基础 第二章 数据类型.
第六章 属性、索引器、委托和事件.
類別與物件 I (Classes and Objects I)
第三章 C# 基础知识.
辅导课程八.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
劉崇汎 崑山科技大學 電腦與通訊系 DLL的建立與引用 劉崇汎 崑山科技大學 電腦與通訊系
C++大学基础教程 第11章 多态性 北京科技大学 信息基础科学系 2019/4/8 北京科技大学.
第二章 Java基本语法 讲师:复凡.
C#程序设计基础 $3 成员、变量和常量.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++复习2----类与对象.
嵩贊油封工業股份有限公司 小 而 美 的 管 理 簡報人: 管理部 柯美伶.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
第四章 类 4.1 基础知识 4.2 构造函数 4.3 方法 4.4 属性与索引 4.5 String类
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
第二章 Java基本语法 讲师:复凡.
第二章 类型、对象、运算符和表达式.
本节内容 引用类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Review 1~3.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
4. 曾文水庫越域引水環評報告彙整 資料來源: 1. 曾文水庫越域引水下游輸水工程環境影響差異分析暨環境現況差異分析及對策檢討報告(定稿本)
JAVA 程式設計與資料結構 第三章 物件的設計.
對於成員(member)存取權的限制 成員的資料被毫無限制的存取,任誰都可以指定任意值給成員,Java語言為了防止這種現象的產生,規定:有一種成員的資料不能任由類別外部的任何人隨意存取。
05 方法. 05 方法 5.1 方法 在一個較大型的程式中,通常會將具有特定功能或經常重複使用的程式,撰寫成獨立的小單元,稱為「方法」(Method),並賦予方法一個名稱,當程式需要時就可以呼叫此方法來執行該段特定程式。(此種重複使用的程式小單元在其他語言中可能稱為程序、副程式或函式, Visual.
C++程序语言设计 Chapter 14: Templates.
摘要簡報 作品名稱:魔鬼記憶問答 作者:台中市西屯區永安國民小學 葉政德老師、王素珍老師.
Presentation transcript:

C#程序设计基础 $3 成员、变量和常量

成员类型 字段 方法 嵌套成员

字段 字段存储类所需要的数据。 字段的命名遵循camel规则,一般为private类型。 举例 可以是值类型,也可以是引用类型; 可以是系统预定义的类型,也可以是用户自已定义的类、结构和枚举类型。 字段的命名遵循camel规则,一般为private类型。 举例 Class BankCard { Public uint amount; }

方法 方法是包含一系列语句的代码块,是类或结构中用于执行计算或其它行为的成员。 方法声明 访问级别:public ,private等 返回类型:任何数据类型。 方法名:同一个类中唯一。 参数列表:包含在一对小括号中,多个参数间用逗号分割,不需要参数则用一对空的小括号。 方法体:大括号括起来的一段代码。 方法声明 [修饰符] [返回类型]方法名称(形式化参数表) { 方法体 }

方法-参数类型 普通参数 P52 引用型参数 P53 输出型参数 P53 数组型参数 P53 无须特别定义 以关键字ref定义,采用引用传递,定义与使用时均加ref 实参调用前必须先初始化。 输出型参数 P53 以关键字out定义,采用引用传递,定义与使用时均加out 在方法体内必须对参数赋值,实参使用前不需要先初始化。 数组型参数 P53 以关键字params定义,根据实参形式选择引用传递或值传递,包含数量可变的参数。 方法中只允许定义一个数组型参数,而且该参数必须位于参数列表中最后。 数组型参数所定义的数组必须是一维数组。 数组型参数不能同时既为引用型参数又为输出型参数。 传递给数组型参数的实参可以是一个数组变量,也可以是多个数组元素变量。前者采用引用传递,后者采用值传递的方式。

参数传递种类 值传递 引用传递有以下两种类型: 值传递值类型,如:void SquareIt(int x) 参数int x 是值类型。 值传递引用类型,如:void Change(int[] pArray) 数组pArray 为引用类型。 引用传递有以下两种类型: 引用传递值类型,如:void SquareIt(ref int x) 引用传递引用类型,如:void Change(ref int[] pArray)

值传递值类型参数示例 class PassingValByVal{ static void SquareIt(int x) { x *= x; System.Console.WriteLine("SquareIt方法内的n值: {0}", x); } static void Main() { int n = 5; System.Console.WriteLine("调用SquareIt方法前的n值: {0}", n); SquareIt(n); // 通过值来传递值 System.Console.WriteLine("调用SquareIt方法后的n值: {0}", n); 该程序运行输出: 调用SquareIt方法前的n值: 5 SquareIt方法内的n值: 25 调用SquareIt方法后的n值: 5

值传递引用类型示例 class PassingRefByVal{ static void Change(int[] pArray) { pArray[0] = 888; // 将pArray的第一个元素赋值为888, 改变arr[0] pArray = new int[5] { -3, -1, -2, -3, -4 }; // 引用新的数组,不改变arr System.Console.WriteLine("方法内的数组第一元素: {0}", pArray[0]); } static void Main() { int[] arr = { 1, 4, 5 }; System.Console.WriteLine("调用方法前的数组第一元素:{0}", arr[0]); Change(arr); System.Console.WriteLine("调用方法后的数组第一元素:{0}", arr[0]); 该程序运行输出: 调用方法前的数组第一元素:1 方法内的数组第一元素: -3 调用方法后的数组第一元素:888

引用传递值类型示例 class PassingValByRef {// 参数X的值通过关键字ref来传递,改变x的值,将会改变输入的x的值 static void SquareIt(ref int x) { x *= x; System.Console.WriteLine("SquareIt方法内的n值: {0}", x); } static void Main() { int n = 5; System.Console.WriteLine("调用SquareIt方法前的n值: {0}", n); SquareIt(ref n); // 通过ref关键字来传递变量引用. System.Console.WriteLine("调用SquareIt方法后的n值: {0}", n); 该程序运行输出: 调用SquareIt方法前的n值: 5 SquareIt方法内的n值: 25 调用SquareIt方法后的n值: 25

引用传递引用类型示例 class PassingRefByRef{ static void Change(ref int[] pArray) { // 下面两个数组赋值都将改变原始的元素 pArray[0] = 888; // 将pArray的第一个元素赋值为 pArray = new int[5] { -3, -1, -2, -3, -4 }; // pArray 引用新的数组 System.Console.WriteLine("Change方法内的数组第一元素: {0}", pArray[0]); } static void Main() { int[] arr = { 1, 4, 5 }; System.Console.WriteLine("调用Change方法前的数组第一元素:{0}", arr[0]); Change(ref arr);//通过ref关键字来传递数组引用 System.Console.WriteLine("调用Change方法后的数组第一元素:{0}", arr[0]); 该程序运行输出: 调用Change方法前的数组第一元素:1 Change方法内的数组第一元素: -3 调用Change方法后的数组第一元素:-3

数组型参数示例 P54 class CzMath { //程序清单P3_2.cs: //交换两个数的值 using System; public void Swap(ref double x, ref double y) double temp = x; x = y; y = temp; } //对三个数进行排序 public void Sort(params double[] array) if (array.Length != 3) return; if (array[0] < array[1]) Swap(ref array[0], ref array[1]); if (array[1] < array[2]) Swap(ref array[1], ref array[2]); //程序清单P3_2.cs: using System; namespace P3_2 { class ArrayParametersSample public static void Main() double d1 = 1; double d2 = 5; double d3 = 3; double[] ds = { 1, 5, 3 }; CzMath c = new CzMath(); Console.Write("值传递排序: "); c.Sort(d1, d2, d3); Console.WriteLine("{0} {1} {2}", d1, d2, d3); Console.Write("引用传递排序: "); c.Sort(ds); Console.WriteLine("{0} {1} {2}", ds[0], ds[1], ds[2]); }

方法-标识与重载 方法标识 方法名 参数列表(参数数量与参数类型) 返回值?? 方法重载 方法名相同 参数列表不同

嵌套成员 一个程序集或命名空间中的复合类型可以并列定义也可以嵌套定义,二者之间的区别是访问限制的不同。采用嵌套定义时,外部的其他类对嵌套类型的使用将受到限制。 只有将嵌套类型的访问限制修饰符设置为public,外部定义的其他类才能使用该类中的嵌套类型。