C# 面向对象系列笔记(三)

v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}

Normal
0
false

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}

                      第三天

1. 类转换的关键字is和as

is (能不能转):

如果转换成功,则换回true,如果转换不成功,则返回false;

Person person = newStudent("学生", 11, ‘男‘, 100);

if (person isStudent)

{

((Student)person).Study();

}

else

{

Console.WriteLine("转换失败");

}

as:(尝试的转)

如果转换成功,则返回要转的对象,失败则返回null

Person person = newStudent("学生", 11, ‘男‘, 100);

Teacher teacher = person asTeacher;

if (teacher != null)

{

teacher.Teach();

}

else

{

Console.WriteLine("转换失败");

}

2.base:关键字

区别:

this:

1> 就代表当前类的对象

2> 调用当前自己类中的构造函数

base:

1> 指向父类的引用,可以调用父类的成员。

2> 子类继承父类的构造函数时,用于调父类的构造函数

base并不代表父类的对象,而是指向父类的一个引用

通过base关键字,我们可以调用父类的成员

publicnewvoid Test()//彻底的将父类的Test隐藏了子类调用不到父类的Test()了

{

Console.WriteLine("我是子类");

base.Test();

}

3. new

1>  把父类与子类同名的方法进行隐藏,子类把方法重写

2> 创建对象

Person类

publicvoid Test()

{

Console.WriteLine("我是父类");

}

Teache类

publicnewvoid Test()//彻底的将父类的Test隐藏了子类调用不到父类的Test()了

{

Console.WriteLine("我是子类");

base.Test();

}

4. ArrayList集合:

特点:  不需要考虑数组的长度

不需要考虑元素的类型和个数

常用的方法:

1> list.count : 实际包含的元素个数;

2> list.capcity: 可包含的数组个数(从4开始,进行2为递增)

3> list.Add(): 添加单个元素;

4> list.AddRange(): 添加一个数组

5> list.Clear(): 清除集合中所有的元素

6> list.Remove(“张三”): 写谁谁就被删掉了

7> list.RemoveAt(1): 根据下标删除集合中的元素;

8> list.RemoveRange(0,3): 删除一定范围内的元素

9> list.Insert(1,”我是新来的”);插入元素到指定1的位置

10> list.InsertRange(0, new string[] { "张三", "李四", "王二狗蛋儿" }): 插入一条数组

11> list.Sort() 进行升序排列

12> list.Rever() 反转整个数组

5. 装箱和拆箱

装箱:值类型---à引用类型

int n = 10;

object o = n;//装箱

拆箱:引用类型---à值类型

int n2 = (int)o;//拆箱

注意: 有继承关系的对象才能发生拆装箱,没有就不能发生拆装箱;

装箱什么类型,拆箱就必须什么类型

6.Hashtable字典集合(键--->字典的拼音目录;值--->汉字)

定义:存储数据的时候,采用的是键值对的方式来进行存储。

创建过程:

Hashtable ht = newHashtable();  //创建字典集合对象

ht.Add(1, "张三");   //给集合对象添加数据

Console.WriteLine(ht[1]);   //根据键的值输出值

//我们使用foreach循环来对键值对集合进行遍历

foreach (var item in ht.Values)   //如果ht.Keys就是把数组中所有键传入item中,最后根据ht[item]查询值

{

//Console.WriteLine("键{0}----值{1}",item,ht[item]);

Console.WriteLine(item);  //item值

}

注意:1.在我们给Hashtable添加数据的时候,键必须是唯一的,而值是可以重复的;

if (!ht.ContainsKey(2))   //判断键是否重复

{

ht.Add(2, "新来哒");

}

else

{

Console.WriteLine("集合中已经存在相同的键");

}

2.键是可以重新赋值的。

7. var

称之为推断类型,能够根据值推断出值的类型

var number = 100;

var pi = 3.14;

var name = "张三";

var gender = ‘男‘;

var money = 5000m;

var b = true;

Console.WriteLine(number.GetType());

Console.WriteLine(pi.GetType());

Console.WriteLine(name.GetType());

Console.WriteLine(gender.GetType());

Console.WriteLine(money.GetType());

Console.WriteLine(b.GetType());

注意:本类型不建议使用,因为C#是一门强类型语言,就是对数据的类型必须有一个明确的定义。而且造成程序后期可读性差;

8. File:   (using System.IO;//File类的命名空间)

常用函数:

File.Exist(): 判断指定的文件是否存在,返回bool类型;

File.Create(): 创建一个对象;

eg:

//创建文件之前,首先判断文件是否存在绝对路径

if (!File.Exists(@"C:\Users\SpringRain\Desktop\new.txt"))

{

File.Create(@"C:\Users\SpringRain\Desktop\new.txt");

}

File.Delete(): 删除一个文件;

eg:

File.Delete(@"C:\Users\SpringRain\Desktop\new.txt");

Console.WriteLine("删除成功");

File.Copy(): 复制一个文件;

eg:

File.Copy(@"C:\Users\SpringRain\Desktop\繁体字.txt", @"C:\Users\SpringRain\Desktop\new繁体字new.txt");

File.Move(): 剪切一个文件;

eg:

File.Move(@"C:\Users\SpringRain\Desktop\new繁体字new.txt", @"D:\新来的.txt");

路径:

1.相对路径:文件相对于你可执行应用程序的路径;

2.决对路径:通过这个路径可直接在你电脑上找到这个文件的路径;

9. Path

Path.GetFileName(); 获取文件名但是包含扩展名

Path.GetFileNameWithoutExtensition();获取文件名但是不包括扩展名;

eg:

string filePath = @"C:\Users\SpringRain\Desktop\繁体字.txt";

#region Old Method老方法

//int index = filePath.LastIndexOf("\\");

//int index2 = filePath.LastIndexOf(".");

//string fileName = filePath.Substring(index + 1,index2-index-1);

#endregion

Console.WriteLine(Path.GetFileName(filePath));

Console.WriteLine(Path.GetFileNameWithoutExtension(filePath));

Path.ChangeExtension(): 改变文件后辍名;

eg:

Console.WriteLine(Path.ChangeExtension(filePath, "jpg"));

Path.GetFullPath(): 获得文件的绝对路径;

eg:

Console.WriteLine(Path.GetFullPath("1.txt"));

v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}

 第三天

1. 类转换的关键字is和as

is (能不能转):

如果转换成功,则换回true,如果转换不成功,则返回false;

Person person = newStudent("学生", 11, ‘男‘, 100);

if (person isStudent)

{

((Student)person).Study();

}

else

{

Console.WriteLine("转换失败");

}

as:(尝试的转)

如果转换成功,则返回要转的对象,失败则返回null

Person person = newStudent("学生", 11, ‘男‘, 100);

Teacher teacher = person asTeacher;

if (teacher != null)

{

teacher.Teach();

}

else

{

Console.WriteLine("转换失败");

}

2.base:关键字

区别:

this:

1> 就代表当前类的对象

2> 调用当前自己类中的构造函数

base:

1> 指向父类的引用,可以调用父类的成员。

2> 子类继承父类的构造函数时,用于调父类的构造函数

base并不代表父类的对象,而是指向父类的一个引用

通过base关键字,我们可以调用父类的成员

publicnewvoid Test()//彻底的将父类的Test隐藏了子类调用不到父类的Test()了

{

Console.WriteLine("我是子类");

base.Test();

}

3. new

1>  把父类与子类同名的方法进行隐藏,子类把方法重写

2> 创建对象

Person类

publicvoid Test()

{

Console.WriteLine("我是父类");

}

Teache类

publicnewvoid Test()//彻底的将父类的Test隐藏了子类调用不到父类的Test()了

{

Console.WriteLine("我是子类");

base.Test();

}

4. ArrayList集合:

特点:  不需要考虑数组的长度

不需要考虑元素的类型和个数

常用的方法:

1> list.count : 实际包含的元素个数;

2> list.capcity: 可包含的数组个数(从4开始,进行2为递增)

3> list.Add(): 添加单个元素;

4> list.AddRange(): 添加一个数组

5> list.Clear(): 清除集合中所有的元素

6> list.Remove(“张三”): 写谁谁就被删掉了

7> list.RemoveAt(1): 根据下标删除集合中的元素;

8> list.RemoveRange(0,3): 删除一定范围内的元素

9> list.Insert(1,”我是新来的”);插入元素到指定1的位置

10> list.InsertRange(0, new string[] { "张三", "李四", "王二狗蛋儿" }): 插入一条数组

11> list.Sort() 进行升序排列

12> list.Rever() 反转整个数组

5. 装箱和拆箱

装箱:值类型---à引用类型

int n = 10;

object o = n;//装箱

拆箱:引用类型---à值类型

int n2 = (int)o;//拆箱

注意: 有继承关系的对象才能发生拆装箱,没有就不能发生拆装箱;

装箱什么类型,拆箱就必须什么类型

6.Hashtable字典集合(键--->字典的拼音目录;值--->汉字)

定义:存储数据的时候,采用的是键值对的方式来进行存储。

创建过程:

Hashtable ht = newHashtable();  //创建字典集合对象

ht.Add(1, "张三");   //给集合对象添加数据

Console.WriteLine(ht[1]);   //根据键的值输出值

//我们使用foreach循环来对键值对集合进行遍历

foreach (var item in ht.Values)   //如果ht.Keys就是把数组中所有键传入item中,最后根据ht[item]查询值

{

//Console.WriteLine("键{0}----值{1}",item,ht[item]);

Console.WriteLine(item);  //item值

}

注意:1.在我们给Hashtable添加数据的时候,键必须是唯一的,而值是可以重复的;

if (!ht.ContainsKey(2))   //判断键是否重复

{

ht.Add(2, "新来哒");

}

else

{

Console.WriteLine("集合中已经存在相同的键");

}

2.键是可以重新赋值的。

7. var

称之为推断类型,能够根据值推断出值的类型

var number = 100;

var pi = 3.14;

var name = "张三";

var gender = ‘男‘;

var money = 5000m;

var b = true;

Console.WriteLine(number.GetType());

Console.WriteLine(pi.GetType());

Console.WriteLine(name.GetType());

Console.WriteLine(gender.GetType());

Console.WriteLine(money.GetType());

Console.WriteLine(b.GetType());

注意:本类型不建议使用,因为C#是一门强类型语言,就是对数据的类型必须有一个明确的定义。而且造成程序后期可读性差;

8. File:   (using System.IO;//File类的命名空间)

常用函数:

File.Exist(): 判断指定的文件是否存在,返回bool类型;

File.Create(): 创建一个对象;

eg:

//创建文件之前,首先判断文件是否存在绝对路径

if (!File.Exists(@"C:\Users\SpringRain\Desktop\new.txt"))

{

File.Create(@"C:\Users\SpringRain\Desktop\new.txt");

}

File.Delete(): 删除一个文件;

eg:

File.Delete(@"C:\Users\SpringRain\Desktop\new.txt");

Console.WriteLine("删除成功");

File.Copy(): 复制一个文件;

eg:

File.Copy(@"C:\Users\SpringRain\Desktop\繁体字.txt", @"C:\Users\SpringRain\Desktop\new繁体字new.txt");

File.Move(): 剪切一个文件;

eg:

File.Move(@"C:\Users\SpringRain\Desktop\new繁体字new.txt", @"D:\新来的.txt");

路径:

1.相对路径:文件相对于你可执行应用程序的路径;

2.决对路径:通过这个路径可直接在你电脑上找到这个文件的路径;

9. Path

Path.GetFileName(); 获取文件名但是包含扩展名

Path.GetFileNameWithoutExtensition();获取文件名但是不包括扩展名;

eg:

string filePath = @"C:\Users\SpringRain\Desktop\繁体字.txt";

#region Old Method老方法

//int index = filePath.LastIndexOf("\\");

//int index2 = filePath.LastIndexOf(".");

//string fileName = filePath.Substring(index + 1,index2-index-1);

#endregion

Console.WriteLine(Path.GetFileName(filePath));

Console.WriteLine(Path.GetFileNameWithoutExtension(filePath));

Path.ChangeExtension(): 改变文件后辍名;

eg:

Console.WriteLine(Path.ChangeExtension(filePath, "jpg"));

Path.GetFullPath(): 获得文件的绝对路径;

eg:

Console.WriteLine(Path.GetFullPath("1.txt"));

Normal
0
false

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}

时间: 2024-10-17 19:28:36

C# 面向对象系列笔记(三)的相关文章

javascript面向对象系列第三篇——实现继承的3种形式

前面的话 学习如何创建对象是理解面向对象编程的第一步,第二步是理解继承.开宗明义,继承是指在原有对象的基础上,略作修改,得到一个新的对象.javascript主要包括类式继承.原型继承和拷贝继承这三种继承方式.本文是javascript面向对象系列第三篇——实现继承的3种形式 类式继承 大多数面向对象的编程语言都支持类和类继承的特性,而JS却不支持这些特性,只能通过其他方法定义并关联多个相似的对象,如new和instanceof.不过在后来的ES6中新增了一些元素,比如class关键字,但这并不

C# 面向对象系列笔记(五) 完结

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; ms

面向对象之笔记三-------------- 原型链

复习 -> 继承 原型式继承 function Person() {} Person.prototype = 父对象; var p = new Person(); p 继承自 父对象 混入 ( mix, extend ) function extend( o1, o2 ) { for ( var k in o2 ) { o1[ k ] = o2[ k ]; } } 注意命名规则: 1> 一般 将一个对象混入另一个对象, 使用 mix 2> 如果是当前对象的方法. 是将另一个对象混入当前对

C# 面向对象系列笔记(四)

v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} Normal 0 false 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable {

C# 面向对象系列笔记(二)

v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} Normal 0 false 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable {

面向对象系列三(多态)

面向对象的多态,我们先用生活中的多态来理解.大学的校园四月,是社团活动最紧忙的一个月.届时,学校的相关管理部门会对各社团上交的"社团活动策划案"进行审批后下发.以我曾参加的一个话剧社作为例子,社长接到审批的文书后,会对整个社团组织内部人员进行职权分工,编剧部.后勤部.外联部.秘书部.文艺部所有部门各有分工,分头积极准备工作,大家为了完成共同一部话剧热火朝天地干了起来. 这里审批的"社团活动策划案"同意办活动(一条命令),接到审批文书,来到"社长"

javascript面向对象系列5——知识点(原型和原型链)

基本概念 [原型链]每个构造函数都有一个对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针.那么,如果原型对象等于另一个原型的实例,此时的原型对象将包含一个指向另一个原型的指针,相应地,另一个原型中也包含着一个指向另一个构造函数的指针.如果另一个原型又是另一个原型的实例,那么上述关系依然成立.如此层层递进,就构成了实例与原型的链条. [原型对象]这个对象包含可以由特定类型的所有实例共享的属性和方法.所有引用类型默认都继承了Object,而这个继承也是通过原型链实现

python 学习笔记 三 字典

字典 Python的高效的key/value哈希表结构叫做"dict", dict的内容可以写成一系列的key:value对并放入{ }中, 相当于: dict = {key1:value1, key2:value2, ...}, 一个空的字典就是俩个大括号{ }. 下面是从一个空字典创建字典以及一些关键点: 数字, 字符串和元组可以作为字典的key, value可以是任何类型(包括字典). ## Can build up a dict by starting with the the

环境搭建系列笔记-目录

计划出个系列笔记,写一下如何搭建MySQL集群.RabbitMQ集群.Redis集群.Zookeeper集群.nginx.tomcat啥的. 先定个小目标,列个目录,然后搞出来这个系列. 大家有什么建议,比如想先看哪个?想让我写得多详细?想让我提供什么资源? 系列一:系统安装之centos 6.5安装与配置 系列二:准备工作之Java环境安装 系列三:数据为先之MySQL读写集群搭建 系列四:谈分布式之RabbitMQ集群搭建 系列五:谈分布式之Zookeeper集群搭建 系列六:分布缓存之Re