标签:
**************【5】【C#面向对象编程基础】第1讲:类与对象****************
????????????????*************2.1.1_类与对象的概念**************
3. 对象表示世界中的实体,面向对象编程就是将这些实体模拟到计算机中!
4. 什么是封装?
????封装是指将一个或多个小对象包装在一起,然后以新的完整对象展现在人的眼前!
封装是对象的内部特征变的隐蔽,从而更加安全!
对象是一个类别中的一个实例!
5. 什么是类?
????将对象的共同特征抽象出来,这些共同的属性和方法被组织在一个单元中,就称为类!(具有相同属性和共同方法的一组对象的特征集合!)
类具有属性和方法!
?
6. 类和对象的区别:
类是定义的一个概念模型!它是一种模型!而对象是套用这种模型实现的一个实例!
例如:电脑就是一个类!因为你不知道是具体的那一台!
7. 类定义的的模板:
8. 字段(成员变量)
9. 对象创建方法:
类 对象名 = new 类();【】
10. 对象的创建过程:
11. 面向对象的三大特征:封装、继承和多态。
12. string.format??是格式化字符串??
有多个字符串的时候,只在内存中分配一个字符串!
例如:string info=string.Format("姓名:{0} 学号:{1}",name,n);
答:private 是修饰符 它和protected, public一起,都是对类的访问权限进行修饰,或者说是限制, private,只有类内可直接访问, partial关键字的作用是将你的 class 分为多个部分,编译器会将多个部分拼到一起去。
例子:
public partial class SampleClass
{
public void MethodA() { }
}
public partial class SampleClass
{
public void MethodB() { }
}
和
public class SampleClass
{
public void MethodA() { }
public void MethodB() { }
} 是等价的.
?
?
????????????????????????**************2.1.2_字段与属性**************
类型:private(私有的:外部不可见)public(公有的:外部可见)
如果类型名前面不加public则程序默认为private
【蓝色方框】----------字段!
2. 字段一般私有化
????属性必须公有化
????通过value将外部值附给私有字段
?
3. 属性其实是外界访问私有字段的入口,属性本身不保存任何数据
4. 属性的特殊功能:
????属性的快捷方式:prop;
?
5. 万能转换日期用Convert.ToDateTime("1994-05-02");
6.字段与属性的比较:
7.将字段封装成属性:就是只有属性没有字段!
8.属性编写的新语法(自动属性:.NET3.0其后续版本)
public double Salary{get; set;}< =>
写成这样编译器就会自动给我们添加应有的字段
这种写法的适用范围:
快捷方式:prop + tab键 + tab
?
?
?
????????????????????????????***********类的方法************
????
访问修饰符 返回值类型 方法名(参数1,参数2)
{
????????retur n 返回值;
}
?
?
?
?
?
******【6】【C#面向对象编程基础】第2讲:对象类型、构造方法与OOP********
????????????************2.2.1_对象的数据类型与对象销毁************
以上图解,当是基本类型时,将a附给b是将a的数据附给了b,而当是引用类型时,是将a对象的内存地址复制给了b对象,然后a和b同时指向了同一个对象,也就也就是所谓的一个人有两个名字(英文名和中文名)
?
但是用形参的方式传递值时,是通过基本类型传递数值的!而用到ref时,它就是通过引用类型(将内存地址附给变量)进行传值!
***在开发中不建议使用ref
out 侧重的是输出!它也是使用引用方式传递!在实践开发中不建议经常使用out关键字,可以使用后面讲的"字典集合"方式返回多个参数!
对象具有生命周期;
利用垃圾回收机制(GC),进行销毁!
?
?
7.对象在内存中的状态:
8.存在垃圾回收机制(GC)
作用:GC的使用大大减少了程序员手动释放对象的操作,且程序运行稳定!
?
********2.2.2_构造方法************
String.Empty 字段
.NET Framework 类库
表示空字符串。此字段为只读。命名空间:System
程序集:mscorlib(在 mscorlib.dll 中)
protected string loginId = String.Empty;
protected string loginId = "";
"" 分配一个长度为空的存储空间?
所以一般用string.Empty
为了以后跨平台,还是用string.empty
在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。比如:
string s = "";
string s2 = string.Empty;
if (s == string.Empty) {
//?
}
if语句成立?
判定为空字符串的几种写法,按照性能从高到低的顺序是:
s.Length == 0 优于 s == string.Empty 优于 s == ""?
您关于String.Empty和Null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= String.Empty和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错。textBox1.Text的值为零长度字符串 ""。
?
便于程序员重复写代码,我们可以用:this()
?
?
注意:对象初始化器里面的元素是以","分割。
6.对象初始化器和【01】的区别:
而是用
就要求必须初始化,否则就出错!
?
。当成员变量和局部变量重名时使用this区分
This.studentId表示成员变量,而后面的studentId是表示形参里面的【studentId】
。构造方法时与自身使用用到!
本节总结:
***********2.2.3_类与对象总结**************
?
?
?
?
?
?
3..NET 平台规定:所有类都必须继承object类!
子类可以附给父类(object)!
本节总结:
?
?
?
*********【7】【C#面向对象编程基础】第3讲:集合的应用***********
????????*************2.3.1_非泛型集合ArrayList和HashTable***************
?
?
答案是可以,下面我们将引入ArrayList【是一个长度可变的"数组",通常称为集合!】
可以存储任何数据,因为是object类型!
?
ArrayList使用的不足:
理论上说,ArrayList弥补了一般数组不能随意添加/删除数据的缺点!但是当删除的时候,也将集合的位序尽心了更改(数据会因为前面的数据被删/增加,而自动向前替补!所以导致位序发生了变化,导致查找数据不再容易了!因此给予这种原因,我们引入了Hashtable【哈希表】--【是按照"键--值"对方式】存取数据的集合!)
Hashtable的遍历方法:
?
?
for 和 foreach的区别:
foreach(实例 in 实例的集合)
{
处理每个实例的操作;
}
for(整形变量作循环的计数器,通过限定条件和对计数器变量的修改空值循环次数)
{
每次循环执行一次指定操作
}
不同点 用foreach无需了解循环体究竟要执行多少次,for需要你自己通过控制计数器来控制循环体的执行次数 在大多数情况下可以互换,foreach的运行开销要小。
?
对于for来说:可以使数据以你想象的顺序进行输出,而对于foreach来说:不能保证!
例如:
*********** 2.3.2_泛型集合ListT与Dictionary的使用*************
如果再加其他类型时,还要添加代码,很麻烦,然后我们应想办法限制对象的类型!这就引出"泛型集合"
?
?
?
?
其中新出现了:list.Insert(1,objStu4),意思是:在制定的位置添加数据!
注意:List和ArrayList基本一样!具体请注意看上面的图片!
?
?
?
?
?
?
?
?
?
?
*********** 2.3.3_对象的排序*************
这里的list.Sort();方法就是将元素按照拼音首字母升序进行排列,要是想降序排列,则用list.Reverse();方法!如果是数字,也适用!
?
?
Compare To【意思是进行比较!】
?
?
?
?
?
?
?
?
?
*************【8】【C#面向对象编程基础】第4讲:开始桌面应用程序开发***************
?
*******2.4.1_WinForm程序开发环境的使用方法*********
B【Browser】/S【Server】架构应用程序---------(Web应用程序)
C【Client】/S【Server】架构应用程序-----------(Windows Winform 桌面应用程序)
?
Program.cs文件中有Main方法,但我们在创建winform窗体应用程序的时候用的很少!
Application 是我们的静态方法!
Form类是预定义窗体类!
一个类只能有一个父类!避免循环继承!
Relese—是发布的意思!也就是说调试完成后,程序没有错误,才能进行发布!这也是它和Debug的区别!
?
?
******2.4.2_.NET中的事件驱动机制********
?
3.常用的控件的重要事件
4事件的委托:将事件处理方法与事件本身关联起来!
?
****************************************************************1. 窗体控件的命名规范:
定义窗体对象:被调用的窗体类名 窗体对象 = new 被调用的窗体类名();
显示窗体: 窗体对象.Show();
窗体显示的另外一种方法:模式窗体(打开一个窗体,如果不关闭这个窗体的话,就不能操作另外一个窗体!)
?
?
?
MessageBox.Show("显示文本内容","标题","应出现的按耨!","提示图标");
DialogResult(枚举类型)
?
?
?
?
****【9】【C#面向对象编程基础】第5讲:文件操作、对象序列化与XML****
?
?
?
?
?
?
?
?
?
?
?
虽然这样可以储存对象的信息,也能读取其中的内容,但是如果我们添加一个对象属性,还要进入代码中,更改一大串代码,我们感觉不方便!所以我们可以使用序列化和反序列化保存于还原对象!
反序列化对象的实现:
跨平台数据交互,典型的应用就是webservice(网页服务)的使用
常见的webservice,比如列车时刻表
http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx
注意:在前面要加using System.Xml;命名空间!
如何从XML文件中找到特定节点的数据?
方法一:使用遍历的方法!(缺点是:非常麻烦,必须从头开始进行查找!)
方法二·:使用查找的方法!(简单易用!)
Random类:生成随机数!
?
XML总结:
?
标签:
原文地址:http://www.cnblogs.com/taidou/p/4673382.html