欢迎光临散文网 会员登陆 & 注册

.NET基础第十天

2023-07-15 12:02 作者:香草味的lollipop  | 我要投稿

一、命名空间  namespace(和C++中类似)

  • 作用:用于解决类重名的问题,可以看作是类的文件夹

  • 如果代码和被使用的类在一个namespace  则不需要using

  • 在不同命名空间下类的调用有三种引用方式

            ○ 写全称  命名空间.类名

            ○ 先using引用命名空间,再调用

            ○ 记住命名空间,手动去引用

        如果使用的类 当前引用的命名空间没有 可以用ALT+SHIFT+F10 调出引用命名空间的下拉菜单 或者alt+enter

二、在一个项目中添加另一个项目的类

        1)添加引用

        2)引用命名空间

三、值类型和引用类型

区别:

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

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

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

值类型是存储在内存的栈当中,引用类型是存储在内存的堆当中。

字符串的不可变性

四、字符串

1)字符串的不可变性

        ○ C#中字符串有一个很重要的特性,不可变性,字符串一旦声明就不再可以改变。所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改。

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

2)可以将字符串看成是char类型的一个只读数组

说明:

        如果要对char进行修改,那么就必须创建一个新的字符串,用 str.ToCharArray()方法得到字符串的char数组,对数组进行修改后,调用new string(char[] chs)这个构造函数来创建char数组的字符串。

        一旦字符串被创建,那么char数组的修改也不会造成字符串的变化。例子:将字符串中的A替换为a

  • 字符串的连接 +  两边只要有一个是字符串类型,另一个也会被自动转换成字符串类型

  • 一切类型都可以调用ToString()方法转换成字符串类型


3)字符串提供的各种方法

五、继承

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

Student、Teacher、Driver    子类    派生类

Person                                   父类    基类

问题:子类继承父类,那么子类从父类那里继承过来了什么?

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

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

        子类并没有继承父类的构造函数,但是在创建对象的时候,子类会默认调用父类的无参构造函数,在子类对象的内部创建父类的对象,让子类可以使用父类中的成员。

        所以,如果在父类中重新写了一个有参数的构造函数之后,那个无参数的就被干掉了,子类就调用不到了,所以子类在编译时会报错。

解决办法:

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

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

  • 继承的特性:

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

        2) 继承的传递性

  • 查看类图

  • object是所有类的基类。

  • 在C#中,所有的类都直接或间接的继承自object类(当我们定义一个类的时候,如果没有写继承一个类,那么这个类就继承了object类)

六、new关键字

        1) 创建对象

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

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


.NET基础第十天的评论 (共 条)

分享到微博请遵守国家法律