C#基础第九天(面向对象)

1、命名空间

可以认为类是属于命名空间的。

如果在当前项目中没有这个类的命名空间,需要我们手动导入这个类所在的命名空间。

1.用鼠标去点

2.alt+shift+f10

3.记住命名空间,手动的去引用

2、在一个项目中引用另一个项目的类

1.添加饮用

2.引用命名空间

3、值类型和引用类型

区别:

1.值类型和引用类型在内存上存储的地方不一样。

2.在传递值类型和引用类型的时候,传递方式不一样。

值类型我们称之为值传递,引用类型称为引用传递。

我们学的值类型和引用类型

值类型:int.double.bool.char.decimal.struct.enum

引用类型:string.自定义类.数组

存储

值类型的存储在内存栈中

引用类型存储在内存的堆中

3、字符串

1.字符串的不可变性

当你给一个字符串重新赋值之后,老值并没有销毁,而是重新开辟一块空间存储新值。

当程序结束后,gc扫描整个内存,如果发现有的空间没有被指向,则立即把它销毁。

2.我们可以讲字符串看做是插入类型的一个只读数组。

tochararray();将字符串转换为char数组

new string(char[]chs):能够将char数组转换为字符串

4、字符串提供各种方法

1.length:获得当前字符串中字符的个数

2.toupper():将字符串转换成大写

3.tolower():将字符串转换成小写

4.equals(lessontwo,stringcomparison。ordinalignorecase):比较两字符串,忽略大小写

5.split()分割字符串,返回字符串类型的数组

6.substring():解决字符串,在截取的时候包含要截取的那个位置

7.indexof():判断某个字符串中第一次出现的位置,如果没有返回值-1.值类型和引用类型在内存上存储的地方不一样

8.LastIndexOf():判断某个字符串在字符串中最后一次出现的位置,如果没有同样返回-1

9.StartsWith():判断以....开始

10.EndsWith():判断以...结束

11.Replace():将字符串中某个字符串替换成一个新的字符串

12.Contains():判断某个字符串是否包含指定的字符串

13.Trim():去掉字符串中前后的空格

14.TrimEnd():去掉字符串中结尾的空格

15.TrimStart():去掉字符串中前面的空格

16.string.IsNullOrEmpty():判断一个字符串是否为空或者为null

17.string.Join():将数组按照指定的字符串连接,返回一个字符串

5、继承

我们可能会在一些类中写一些重复成员,我们可以将这些服用成员单独封装到一个类中,作为这些类的父类。

student.teacher.diver.                   子类  派生类

person                                          父类   基类

子类继承父类,那么子类从父类那里继承过来了什么

首先,子类继承了父类的属性和方法,但是子类并没有继承父类的私有字段

问题:子类有么有继承父类的构造函数

答:子类并没有继承父类答构造函数,但是子类默人会调用无参的构造函数,

创建父类对象,让子类可以使用父类中的成员

所以,如果在父类中重新写一个有参数的构造函数之后,那个无参数的就被干掉了

子类久调用不到,所以子类会报错。

解决办法

1.在父类中重新写一个无参的构造函数

2.在子类中显示的调用父类的构造函数,使用关键字  base()

6、继承的特性

1.继承的单根性:一个子类只有一个父类

2.继承的传递性

7、查看类图

8、object是所有类的基类

9、new关键字

1.创建对象

2.隐藏从父类那里继承过来的同名成员。

隐藏的后果就是子类调用不到父类的成员

继承

继承的构造函数



值类型和引用类型

字符串的不可变性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容