C#学习的第八天

本文详细介绍了构造函数的作用、特点、重载,以及对象的初始化方式,包括自动属性、静态和实例成员的区别,值传递与引用传递,以及字符串的特殊性质。
摘要由CSDN通过智能技术生成

1.构造函数

构造函数:也是一个函数,目的是为了帮助我们简化的完成初始化对象的操作,省去那一坨的this.

特点:构造函数,是一个特殊的函数。

特殊一:构造函数的名字,跟类名必须一致。

特殊二:构造函数,不允许有返回值。

特殊三:构造函数的访问修饰符,也必须写成Public,因为经常在其他项目里访问。

特殊四:如果我们在类中,不写构造函数,会默认加入一个无参的构造函数如果写了一个新的,默认的无参数的就被干掉了。

构造函数的重载: 

重载:方法的名字相同,参数不同,个数不同,类型不同。

构造参数重载执行:先执行this后面调用的构造函数,执行完成后,在执行自己【显示】调用的构造函数。

 

new的作用:

 1.在内存中开辟空间

2.在开辟的空间里创建对象

3.调用对象的构造函数,初始化对象。

初始化对象的方式: 

1.给每一个属性,依次的赋值

2.通过构造函数,给属性赋值

3.对象初始化器。

2.自动属性

自动帮助我们生成私有的字段和属性;

好处:不需要写字段了

坏处:不能对字段进行精确的限制

 使用方法如下图所示,构成了自动属性:

 

3.静态和非静态(实例) 

类中的成员可以分成两类,静态成员和非静态成员。

1.静态成员,需要被static标记。

2.实例成员,不允许被static标记

3.静态成员,需要被类名,静态成员的方式进行调用。

4.实例成员,调用的时候,需要对象名,实例成员的方式调用。

5.静态成员,属于类,实例成员属于对象。

6.非静态类中,可以包含实例成员和静态成员。

7.静态类中,只允许包含静态成员,静态类中不允许包含实例成员。

8.实例方法中,可以访问静态成员/静态方法中,不可以访问实例成员。

实例成员:创建对象,实例成员是属于对象的。

静态成员:程序一加载的时候,就在内存中开辟空间存储了。

静态成员是先一步实例成员进内存的。

有静态成员的时候,不一定有实例成员。

但是,有实例成员的时候,一定有静态成员了。 

 静态和非静态的使用场景:

静态特点:

1.先于实例成员加载进内存。

2.在整个程序运行过程中,除了关闭程序,否则静态成员不会被资源释放

3.实例成员,不用的时候,就被GC垃圾回收,自动销毁了。

4.-1静态成员,多用于【全局共享】的数据使用。

4-2作为【工具类】使用Console使用频率非常高、使用人数非常多static用来保存。

4-3静态类,不允许被创建对象

不用每次都得NEW

4.跨项目的使用类

1.添加引用

在解决资源管理器中找到添加引用这个功能。

 

找到需要的项目,添加到当前项目中来。

2.使用using关键字,导入命名空间 

在上面用using关键字来导入需要的项目,导入命名空间。

 

3.将被访问的访问修饰符必须改成public 

  

在public之后就可以调用跨项目的类了。

5.值传递与引用传递 

类是引用类型传递:类传递的是地址:下图是类的传递原理图。如下所示:

 

6.字符串(特殊的引用类型)

1.字符串可以看作是char类型的只读数组。ToCharArray()

2.字符串的不可变性。堆里面的值是不可变的,每次给字符串重新赋值,都会在内存里开辟新的空间。

3.字符串拘留池。

4.字符串拼接会导致内存发生变化,但StringBulider拼接字符串,不会重新在内存开辟空间。

字符串判等三种方式:

 1.“==”。  2.“s1.equals(s2)”   3."object.ReferenceEquals(s1,s2)"

 toStirng()方法转换成字符串类型。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值