传智播客C#_基础和Winform笔记及案例-苏坤2011上课笔记

2018-11-12 21:13

访问修饰符:在C#中有4个访问修饰符号 Public : 可以在任何地方被访问 Internal :可以在本项目访问 Private :只能在本类访问

Preotected :只能在本类或者子类被访问

在类这个级别,不写访问修饰符默认为internal

在一个类定义类或者方法中,没有写修饰符,那么默认的修饰符为private 什么叫属性,通属一点:就是定义一个public具有get/set方法的变量, 这个变量来保护私有的变

利用private,用方法SayHello();调用姓名和年龄的变量。

姓名三没有显示,显示男生,如果输入错的,就直接默认为男生。

? 允许外部访问的变量一定要声明为属性。

属性可分为:读写、只读 读写属性:

具有get/set方法的属性叫做读写属性

具有get方法的属性叫做只读属性,这个属性只能读取,不能写入。

具有set方法的属性叫做只写属性,这个属性只能写,不能写读(只写属性比较少)。 类的练习

? 定义一个学生类,有六个属性,分别为姓名、性别、年龄、语文、数学、英语成绩。

? 有2个方法:

? 一个打招呼的方法:介绍自己叫XX,今年几岁了。是男同学还是女同学。

? 一个计算自己总分数和平均分的并显示方法。{显示:我叫XX,这次考试总成绩为X分,平均成绩为X分}

? 实化两个对象并测试:

? 张三 男 18 三科成绩为:90 95 80 ? 小兰 女 16 三科成绩为:95 85 100

当我们实例化一个类时,系统自动对这个类进行初始化, 数字类型初始成为0/0.0 String 初始化为:null Char 初始化为:\\0 使用构造方法的好处:

1)对多个属性进行赋值时,不需要重复写实例名

今天学习的第一句话:

Console.WriteLine(“你想显示的内容。”); 第二句话:

Console.ReadKey();

当程序执行到Console.ReadKey();时,程序会停到这里,等待用户从键盘上键入一个键,用户键入这个键之后,程序才会继续执行。

在C#中,每一句话都必须以“分号”结束

C#中的注释,什么是注释呢?对我程序进行的解释,注释是给人看的。

下面的一对指示可以折叠代码。 #region 内容

#endregion

MSIL:微软中间语言Microsoft Inter mediate Language CLR:公共语言运行时Common Language Runtime CLS公共语言规范 Common Language Specification CTS:通用类型系统Common Type System JIT:即时编译器Just In Time

第二天课程: 复习--

Console.WriteLine()

可以用CW加Tab键。这样就能直接打出Console.WriteLine();

变量1:

变量:变量代表着一块内存空间,我们可以通过变量名称向内存存\\取数据。有变量就不需要我们记忆复杂的内存地址。

向内存申请一块内存空间的语法: 数据类型 变量名;

整数在我们C#中的数据类型叫int

Int nuber;

预定义类

简单类型 object string

非数值类数值类型

bool char 整数类型 浮点类型

8-Bit 16-Bit 32-Bit 64-Bit decimal float double

sbyte byte short ushort int uint long ulong

Double:小数

Char:字符型 只能存储一个字符,并且存储的这个字符要求用单引号引起来

String 类型:字符串,就是把0个或1个或多个字符连接起来。字符串要求用双引号引起来。 Decimal 类型:用来表示钱和货币,失精度 不至于丢失。

注意:在C#开发环境中,直接写一个有小数点的数字,这个数字是double类型。 在一个小孩苏idan后面加个m\\M,就告诉编译器这是个decimal类型 应该写成:money = 100.34m; 变量的命名规则:

1. 必须以“字母”_或@符号开头、 2. 后面可以跟任意“字母”,数字,下划线。 注意:

1. 你起的变量名不要与C#系统中的关键字重复。 2. 在C#中,大小写是敏感的。

3. 同一个变量名不允许重复定义(先这么认为,不严谨)。 ? 定义变量时,变量名要有意义

? C#变量名编码规范---Camel命名法:

? 首个单词的首字母小写,其余单词的首字母大写。

? Pascal命名规范:每一个单词第一个字母都大写。 ? 如果使用到英文单词的缩写,全部用大写。

在一个方法中,一般情况下变量只能定义一次(先这么认为),但可以多此赋值,再次赋值时,会把变量中原有的值给覆盖掉。

“+”在C#中有两种意义:

1. 在数学中的加法运算:两边参与加法运算的数据类型为数字类型,则“+ “表示数学上的加法意义。

2. 是连接的意思:两边参与加号运算的数据,有一个是字符类型,那么这个“+“好就是连接

的意义。

在Console.WritLine(“”)中,第一个变量/ 字符串中可以使用占位符。

占位符有{数字}组成,数字有0开始编号 第1个占位符:{0} 第2个占位符:{1} 第3个占位符:{2} ………

Console.WriteLine();有多个参数时,输出都是第一个参数中的内容,从第二个参数开始都是用来替换第一个参数中的占位符的值,所以从第二个参数开始,要不要输出,就要看第一个参数中有没有相关的占位符。

例如:Console.WriteLine(”{0}我叫”+name,”今年”+age+”岁了”);

输出结果是:今年28岁了我叫张三

再学习一句话,用于让用户从键盘上输入一句话。当程序执行到线面这句话,就会暂停,然后等待用户从键盘上输入一句,按回车程序将继续执行。如果想得到用户输入的的内容,就需要定义一个string类型的变量,写在下面这句话前面,接收用户输入的内容。 Console.ReadLine();

接收用户输入的内容,必须定义一个字符串来进行接收。 String input = Console.ReadLine();

转义字符:

什么时候用,当我们需要在字符串中输入一些特殊字符时,比如:半角引号,换行,退格。就需要使用转义字符。

转义字符是一个字符,他由一个\\+一个字母来组成具有特殊意义的一个字符。

常用的转义字符: \\n换行

\\b backspace 退格

\\t tab键 由多个空格组成的一个字符,具有行与行之间的对齐功能。 \\\\表示一个\\ 在字符串前面加一个@符号有两种意义:

1. 字符串中如果有\\,则不再理解为转义符。 2. 使字符串可以换行

如果字符串前面加了@符号,在字符串上用连个双引号代表一个双引号。

C#中,有五个算术运算符:+-*/% 他们二元运算符。要求参与运算的两个操作数的类型必须相同,并且经过运算后的结果也与操作数的类型相同。

在算术表达式中,如果要改变计算的优先级,用小括号。小括号可以无限制的套用,但一定要成对出现。

发生自动转换的条件:

1. 参与运算(算术运算和赋值运算)的操作数和结果类型必须一致。当不一致时,满足下面条件

时,系统自动完成类型转换。 2. 两种类型兼容

3. 例如:int 和 double兼容 4. 目标类型大于源类型 5. 例如:double>int

自动转换中,转换是不会丢失进度的。

经常见到的就是,参与运算的两个操作数,一个是int ,一个是double,那么int类型会自动转换乘double

如果一个操作数为double型,则整个表达式的运算结果为double类型。

当需要丢失精度的转换(如果从double3.14到int 3的转换,会丢失0.14的精度)时,系统是不会帮我们自动转换的。需要我们程序员来写代码完成转换。 (数据类型名)待转换的值;

注意:下面的两种转换是错误的。因为强制类型转换要求待转换的类型和目标类型必须都为数字。

//string age = (int)Console.ReadLine; //int a = (int) “33”;

Int 变量 =Convert.ToInt32(待转字符串);

上面语句的意义:把待转字符串转换成int类型后赋给变量。 C#中的异常捕获如何完成: Try { 有可能出现错误的代码写在这里 } Catch { 出错后的处理 }

上面的程序如何执行:

如果try中的代码没有出错,则程序正常运行try中的内容后,不会执行catch中的内容。

如果try中的代码一旦出错,程序立即跳出catch中去执行代码,那么try的出错代码后面的代码不再执行。

Age++ 自加一 有前加和后加 Age--自减一 有 前减和后减

第2题

练习:写一个MyTryParse 方法,要求用户传入一个字符串,如果这个字符串能转成int类型,则方法返回true,并且转换后的int类型数据通过方法的参数传出。如果字符串不能转换成int类型,则方法返回false,那么out传出的参数将没有意义,在方法中随意赋个值就行了。

? 方法只能返回一个值,当需要返回多个值时怎么办? ? 例如:

写一个方法,计算一个int类型数组中每个元素的总和 和 最大值与最小值?

Out用于传出值;在方法中必须对out修饰的传出值进行赋值。 Ref可以理解成是双向的,既可以传入,又可以传出。(像C语言中的指针)

在传参的过程中,如果参数有out或ref修饰的话,那么改变方法中的参数变量的值,调用者方法中变量的值也会相应改变。

按任意键,掷数字

? 属性——对象具有的各种特征

? 每个对象的每个属性都拥有特定值

? ? ? ? ? ?

例如:杨老师和张三的年龄不一样. 属性:姓名,性别,年龄 属性的值:

方法: 行为,动作.执行的操作. 方法:杨老师的行为,上课. 学生的行为,学习 找出下列对象共性

? 张三(一个学生)\\杨老师\\邻居售货员张阿姨\\李四的爸爸\\李四的妈妈 ? 门口停的奔驰S320汽车/老师开的QQ汽车/杨老师的解放牌大货车 ? 类:类是模子,确定对象将会拥有的特征(属性)和行为(方法) ? 类是对象的类型 ? 人类 解俊峰; 类是对象的类型 int a;

? 对象是一个你能够看得到、摸得着的具体实体 ? \人\类都有:姓名\\性别\\年龄 属性,有说话的方法.

? 张三是属于人类的一个对象,他的姓名属性的值:张三值:20 张三会说话

? 对象可以叫做类的实例(Instance) ? 类不占内存,对象才占内存. Params

?

? 性别的属性的值:男 年龄属性的

?

? 定的定义语法:

[访问修饰符] class 类名 { 成员; ...... }

? 类中可以包含变量的定义、方法。

? 请练习定义一个人类.人类分别用三个变量来表示姓名性别年龄,有一个打招呼的方法,有一个走路的方法.

在我们写类中,我们在写方法时,先不要加static,

下面我们定义了一个叫Person的类,这个类仅仅是人这个对象的模板, 在这个模板规定了人的对象应有 性别,姓名,年龄和SayHello方法

如果通过一个类来实现一个对象呢?

通过类来实现对象的过程,叫做类的实例化 类的实例化,用关键字new

语法: 类 实例名 = new 类();

访问类的属性 实例名.属性名 访问类的方法

实例名.方法名()

只要没有加static的方法或者属性,都必须先实例化,在通过实例名.方法或者实例名.属性来访问。

加static的方法或者属性,可以直接通过实例名.方法或者实例名.属性来访问。

调用了SayHello,如下:

第1题

最大值和最小值

第二题

第2题

第5题

如果是倒过来的元素

交换

第1题

冒泡排序:

让数组中的元素两两比较,(第i个与第i+1个比较),进过n(i-1)遍两两比较,数组中的元素能按照我们预期的规律排序。

要从大到小排序,我们进行两两比较的时候用< 10,20,30,40,50,60,70 原始数据7个元素 20,30,40,50,60,70,10第一趟比较6次。 30,40,50,60,70,20,10第二趟比较5次。 40,50,60,70,30,20,10第三趟比较4次。 50,60,70,40,30,20,10第四趟比较3次。

60,70,50,40,30,20,10第五趟比较2次。 70,60,50,40,30,20,10第六趟比较1次。 也就是n个数需要排n-1趟 第t趟比较的次数为:N-t次 i=o 第1趟 i=1 第2趟 趟数:i+1

{可以理解为:for(int j=0,j) { 交换

}

}

}

从大到小排序(12,34,23,65,78,67,45,90,87,76,22,222,98 )

方法:

功能:用来复用代码的。当我们在一个程序反复写的同样的代码。那一般情况下,我们可以把需要重复写的代码定义在一个方法中。用的时候只需要调用就行了。 定义方法的语法: Public

[访问修饰符][static] 返回值类型 方法名([参数]) { 方法体; } 注意:

1.方法一般情况下,方法一般要定义在类(class)中。 2.如果方法没有返回值,则返回值类型写void。 3.如果方法中没有参数,()不能省略。

方法的调用:如果是静态方法(有static修饰的)则使用类名.方法名() 在类中调用本调用的方法,可以只写方法(); Return:立即退出本方法

变量的作用域:

在方法中定义的变量称为局部变量,其作用域从定义开始,到其所在的大括号结束为止。

当被调用者想得到调用者的方法中的变量时,则可以让调用者通过参数的形式给被调用者。

例子:

Public static void test(int number) //形参 { }

在方法名后面的括号内定义变量,叫做定义这个方法的参数。这里定义的变量用于接收调用者传过来的数据。

注意:如果一个方法一旦有参数,那么调用者就必须传参数,并且传参数的个数与对应位置上的类型必须一致。

当调用者想访问我们方法中的变量时,可以通过返回值返回。 例如:

String s= console.ReadLine() Int i= Convert.ToInt32(“22”)

为什么方法前面能够定义一个变量收到方法的值,是因为在方法中使用了返回值。

只要在方法中返回了值,那么在调用方法中,前面就应该用一个变量来接收方法的返回值。

注意:一个方法只能有一个返回值。

一旦一个方法有返回值,那么在这个方法的体中就必须通过return语句返回一个值,并且这个值要与返回值的类型是相同的。 语法: return 值;

当形参是数组的时候,我们传数组名。

一个变量一旦定义在方法外,类的里面,就叫做类的字段。这个变量就可以被本类的所有的方法所访问。但是哟呵注意,静态方法只能访问静态字段。 由const修饰的常量不能定义静态的。

第2题:

第2题

举例:写一个方法,判断一个年份是否是润年

什么叫方法重载:

一般在同一个类中,方法名相同,并且方法的参数的个数不同或者对应位置上的类型不同,才能构成方法的重载。

通过参数来反值:

如上代码: 实现步骤:

1在方法的参数类型前加out,那么传参数的时候,也必须在number前加out表明这个参数不是传入的,而是用来传出值的。

2如果参数是以out形式传入的,那么在传入前可以不赋初值。

3在方法中对于由out修饰的参数,必须赋值,并且必须在使用前赋值。

第一


传智播客C#_基础和Winform笔记及案例-苏坤2011上课笔记.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:加入学生会文艺部申请书_高中生版

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: