文情跑墨

文情跑墨的笔记

来自Csharp语言开发入门9(2)

静态类   1)使用static修饰,被全局共享;   2)只包含静态成员;   3)不可以包含实例成员;   4)使用类名直接调用静态成员;   5)不能被实例化;   6)不能包含实例的构造函数;

来自复习(1)

接L33复习了数组、方法一个变量一旦定义在方法外,类的里面,就叫做类的字段,这个变量就可以被本类的所有方法访问,但静态方法只能访问静态字段,即static修饰的字段。常量不能定义为静态的。

来自变量交换、输入(0)

1.典型的重复声明:int a=1,b=2int a=b,c=a,b=c其中a和b被重复声明了。电话号码一般使用字符串。2. Console.ReadLine();   用于让用户从键盘上输入一句话。当程序执行到这句话时,就会暂停,等待用户从键盘上输入一句(不管输入什么,都被理解为字符串),按回车键后程序将继续执行。    如果想得到用户输入的内容,就需要定义一个string类型的变量,写在这句话前面接收输入内容。   

来自try-catch习题(0)

1.C#中的异常捕获   try   {      有可能出错的代码写在这里。    }    catch    {       出错后的处理     }    上面的程序如何执行:    如果try中的代码没有出错,则程序正常运行try中的内容后,不会执行catch中的内容。    如果try中的代码出错,程序立即跳入catch中去执行代码,那么try中的出错位置后的代码不会继续执行了 

来自自加自减复合赋值-关系表达式(0)

1. 一元运算符    ++a/--a,前加(前减):参与运算时,先将a加(减)1后再参与运算。    a++/a--,后加(后减):参与运算时,先将a原值参与运算,再将a加(减)1。    因此,运算后a值都将增加1,但“前后”将导致表达式计算结果的差异    练习:说出下面程序执行后var1的值    int var1,var2=5,var3=6;    var1=var2++*--var3;    如果改成下面又如何    int var1,var2=5,var3=6;    var1=++var2*var3--;     一元运算符的优先级高于二元运算符      目前为止,能够改变变量的值的运算或赋值运算符包括=(包括自加、减、乘、除、模), ++, --三个2. 关系运算符(比较运算符)  >,<   ==, !=  >=, <=  比大小的结果是什么?  大象的重量(1500)> 老鼠的重量(1)  兔子的寿命(3)>乌龟的寿命(1000)  39<18  我的年龄(20)==你的年龄(20)  关系表达式:由关系运算符连接起来的式子3. bool数据类型   在计算机中,我们用什么数据类型来表示一句话的对错?一个条件的成立与不成立?   布尔(bool)类型      boo值只有两个:      true(真)      false(错)   关系运算的结果是布尔类型的   如在计算机中描述张三(20岁)比李四(18岁)小,这句话的记过   练习看看上一页PPT中四句话的结果。  

来自逻辑表达式(0)

该讲上接第15讲

来自switch-case(0)

为什么使用switch?     李四的年终工作评定,如果定为A级,则工资涨500元,如果定为B级,则工资涨200元,如果定为C级,工资不变,如果定为D级工资将200元,若果定为E级工资奖500元     设李四的原工资为5000,请用户输入李四的评级,然后显示李四的工资。switch-case执行过程:      首先计算表达式,然后根据结果去匹配的case后面的值,如果有匹配项,则执行匹配项后面的语句,直到break语句跳出switch-case块。如果所有的case都不匹配,那么有default则执行default后面的语句,直到break结束,如果没有default则跳出switch-case块,什么都不执行。  

来自for(0)

for循环问题:连续输出100次“我下次一定细心”。比较for和while,那种更好?问题1:求1到100间的所有偶数和?问题2:找出100到999间的水仙花数?问题3:输出九九乘法表(循环的嵌套)语法for(循环变量初值;循环条件;循环变量改变表达式){循环体;}

来自breakcontinue(0)

练习1:循环录入5个人的年龄,并计算平均年龄,如果录入的数据出现负数或大于100的数,立即停止输入并报错。练习2:在while中用break实现要求用户输入用户名和密码,只要不是admin/888888就一直提示要求重新输入,如果正确则提示登录成功。练习3:求1-100之间的整数和,当累计和大于20时,输出当前整数。continue    立即结束本次循环,判断循环条件,如果成立,则进入下一次循环,否则退出循环。举例:运动员跑步喝水的例子 小结顺序结构:按语句顺序执行分支结构:语句满足条件才执行  --if, if-else, if-else if, switch-case  --表达式1?表达式2:表达式3(三元运算符)     +执行过程:首先计算表达式1,表达式1应该能够计算成bool类型值。如果表达式1的值为true,则表达式2的值作为整个表达式的值;反之,表达式3的值作为整个表达式的值。循环结构:语句在满足条件下循环执行多次   --while, do-while, for跳转语句   --break, continue, goto

来自数组(0)

1. 数组1)需求    一次语文测试后,老师让班长统计每一个学生的成绩,并计算全班(共60人)的平均成绩,然后把所有成绩显示出来    如何声明变量?传统方法,有几个人声明几个变量,太累!!!    好的解决方法是使用数组。2)数组的作用    可以帮我们一次声明多个同类型的变量,这些变量在内存中是连续存储的。3)语法---数组类型[] 数组名=new 数组类型[数组长度]---数组类型[] 数组名={值1,值2,……,值n}数组长度即变量(或数组的元素)的个数。例如:int[] score =new int[5];一旦被声明,每一个元素都已被初始化。如果是int型,都被初始化为0. 4)如何访问数组    通过下标(索引)来访问数组,即    数组名[下标];    下标是从0依次开始计算的。方法比较int[] score =new int[3]{3,5,8}//个数和声明数必须一致;int[] score =new int[5]{3,5,8}//错误;int[] score =new int[2]{3,5,8}//错误;int[] score =new int[]{3,5,8}//可以省略数组个数,推荐;练习1:从一个整数数组中取出最大的整数;练习2:计算一个整数数组的所有元素的和练习3:将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑大世”练习4:将一个整数数组的每一个元素进行如下的处理:如果元素是正数则将这个位置的元素的值加1,如果元素是负数则将这个位置的要素的值减1,如果元素是0,则不変练习5:将一个字符串数组的元素的顺序进行反转,如{“3”“a”“8”“haha”}反转为{“haha”“8”“a”“3”} ,即第i个和第lengh-1(i+1)个交换 

来自冒泡排序(0)

上接L32冒泡排序法让数组中的元素两两比较(第i个和第i+1个比较),满足条件较好两个数据的位置,经过n(即i-1)遍两两比较,数组中的元素能按照我们预期的规律排序。从大到小排列,我们进行两两比较的时候用“<"; 反之用”>“如果有n个数,经过n-1趟比较可以得到结果;第t趟比较的次数是n-t趟10,20,30,40,50,60,70原始数据7个元素;20,30,40,50,60,70,10 第1趟比较了6次;30,40,50,60,70,20,10 第2趟比较了5次;……第6趟比较将得到结果。

来自方法(0)

方法(函数)介绍方法就是一堆代码进行重用的一种机制,方法就是一段代码,这段代码可能有输入的值(参数),可能会返回值。一个方法就像一个专门做这件事的人,它执行完后可能会有一些执行结果给我们。要求的数据就叫参数,返回的执行结果就是返回值。Console.ReadLine就是一个有返回结果的方法;Console.WriteLine("Hello")就是一个有执行参数的方法,只有告诉WriteLine被打印的数据,它才知道如何打印。int i=Convert.ToInt32("22")则是一个既有参数又有返回值的方法。有了方法写代码就像拼积木,C#中的各种各样的技术其实就是通过for,if等这些基本的语法结构将不同的方法按照一定的逻辑组织起来的。1. 方法的语法[访问修饰符][static] 返回值类型 方法名([参数]){方法体;}注意:1)一般情况下, 方法要定义在类中2)如果方法没有返回值,则返回类型写void3)如果方法没有参数,小括号是不能省略的

来自返回值(0)

一个方法一旦有参数,那么调用者就必须传参数,参数个数和类型必须与方法对应位置一致。方法中想访问调用者中的变量或数值时,可以通过传参实现。调用者要访问方法中的变量或结果时,可以通过返回值返回只要在方法中返回了值,那么调用者中,前面就应该用一个变量来接收方法的返回值。一个方法只能有一个返回值。一旦一个方法有返回值,那么在这个方法体中,就必须通过return语句返回一个值,并且这个值要与返回值类型相同。可以用数组返回多个值。语法return 返回值;

来自ReadInt(0)

上接L37练习1:读取输入的整数,定义成方法,多次调用(如果用户输入是数字,则返回,否则提示用户重新输入)练习2:还记得学循环时做的拿到题吗?只允许用户输入y或n,请改成方法练习3:查找两个整数中的最大值 int Max(int i1,int i2)练习4:计算输入数组的和:int Sum(int[] values)

来自outref(0)

为什么Console.WriteLine()的参数可以是字符串、数值型等等。方法的重载一般在同一个类中,方法名相同,但方法的参数个数不同或相位位置上参数的类型不同,就构成了方法的重载。 思考:方法只能返回一个值,当需要返回多个值时怎么办?方法的out参数和ref参数函数参数默认是值传递的,也就是“复制一份”。out则是方法内部为外部变量赋值,out一般用在函数需要有多个返回值的场所。例如:int.TryParse.注意:1)在方法的参数类型前加out,那么传参数时,也必须在调用者的参数前加out, 表明这个参数是传出值,而不是传入值;2)如果参数是以out形式传入的,那么在传入前可以不赋初值;3)在方法中,对于有out修饰的参数,必须得赋值,而且赋值必须在使用前;ref(引用)参数:ref相当于c语言中的指针。out用于传出值,ref是双向的,既可以传入也可以传出。ref的作用机理相当于“文件与文件的快捷方式”在ref传递参数时,在方法中或调用者中改变对应参数(或变量)的值,都会导致另外一端的值得改变。因为他们指向了同样的内存空间。 练习1:重复让用户输入一个数,判断该数是否是质数,输入q结束。练习2:将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑大世”(用方法实现)练习3:用方法实现找出一个int类型数组中最大值和最小值;练习4:写一个方法,实现int.TryParse的功能。 

来自Csharp语言开发入门1(0)

先装箱,才能拆箱。

来自Csharp语言开发入门7(0)

多态性:就是不同对象收到相同消息时产生不同行为的现象。     比如同一个抽象类,可以实例化为不同的子类对象;     再比如同一个接口,可以实例化为不同的子类对象;      但要注意实施接口相关的方法和属性时,不需要使用override关键字。面向对象三大特写:封装、集成和多态性。简单工程设计模式     通过工厂类产生子类产品,通过父类接收子类信息。

来自Csharp语言开发入门4(0)

1、交错数组int[][] jaggedArray =new int[3][];jaggedArray[0] = new int[3]; //第1行有3列;jaggedArray[1] = new int[4]; //第2行有4列;jaggedArray[2] = new int[5]; //第3行有5列;2、多维数组int[,] array2D;array2D=new int [5,4];//5行4列array2D={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16},{17,18,19,20},{21,22,23,24}}

来自Csharp语言开发入门5(0)

1.什么是对象?    一个对象同时拥有特征(也叫属性和字段)和行为(也叫方法)    字段(域)是用以存储对象数据的变量;    属性一般不直接存储数据,但其规定了数据取值范围;    属性包括get块和set块,简单的属性通常跟一个私有域关联。    如一辆法拉利360汽车,张三等。2.什么是类?    一类拥有共同属性和方法的事物。    如轿车,人等3.对象与类的区别    类是抽象的,对象是具体的。4 C#中定义一个类     直接添加即可。5. 使用类的对象的步骤1)实例化类的一个对象    类名 新建对象名 =new  类名()2)使用对象    给属性赋值:对象名.属性=属性值;    调用类的方法:对象名.方法名();6. 类的方法    用于定义类的某种行为(或功能)7. 类的方法的定义    [访问修饰符]返回值类型 方法名()     {        方法的主体;     }     void 表示无返回值;     有返回值时,必须用return返回值;8. 类间方法调用,一定要先将类实例化9.访问修饰符10.属性语法 公共域、属性、方法的命名都采用PascaleCasing方法。

来自Csharp语言开发入门8(0)

1.数组的局限     数组元素个数固定,导致调整大小困难,增加元素困难。     问题:图和动态维护一个数组的元素?2. 集合ArryList类    ArryList类位于System.Collections命名空间中。    通过索引号可以获取对象。    问题:是否可以通过关键字获取对象?3.Hashtable    Hashtable类也位于System.Collections命名空间中,可以通过“键-值”对检索数据        可以动态维护数组长度,可以通过关键字检索注意:ArrayList和Hashtale集合都无法区分存入的对象是否为同种类型,如无法区分学生和教师对象,但在运行时会抛出错误。      问题:是否能明确区分存入的对象?4.泛型List      支持区分存入对象的类型。 问题:是否有类似Hashtable一样的泛型呢? 5.泛型Dictionary