c#基础学习笔记之面向对象
文章平均质量分 59
charming_guy
人生本质上就是一道证明题,遗憾的是我们却用了大量的时间只写出了一个“证”字
展开
-
C#语言------------继承和base关键字在调用父类构造函数式的使用(内存分析)
new对象时干三件事情1、在堆中开辟空间2、在堆中创建对象实例化对象(创建对象)3、调用构造函数初始化成员变量一.继承的前奏(理论篇) (1).为什么要用继承? 继承可以减少代码冗余 我们在写一些类的时候可能会重复重复写一些成员,我们可以将这些重复的成员单独封装到一个类中,作为这些类的父类 (2).继承中类的叫法: 子类 --->父类...原创 2018-05-01 19:03:04 · 1369 阅读 · 0 评论 -
c#学习之静态成员
2、静态成员的的调用语法如果静态成员和main方法在同一个Program类中调用时 类名.静态成员(或者不加类名)1)、在非静态类中,既可以有实例成员(非静态成员)也可以有静态成员(静态字段、静态方法、静态静态属性)2)、在调用实例成员(非静态成员)的时候需要使用 对象名.实例成员()3)、在调用静态成员的时候,需要使用 类名.静态成员() 如Convert.ToInt() Co...原创 2018-10-22 10:59:06 · 429 阅读 · 1 评论 -
c#语言------------值类型和引用类型数据的传递(内存分析)
一、值类型和引用类型数据的传递引用类型:string 、数组、集合、object类型、自定义类、接口、值类型:int 、double、char、bool、enum、struct、decimal 1、值类型数据在复制的时候,传递的是值的本身2、引用类型数据在复制的时候,传递的是这个值的引用(即地址) 1、值类型数据的传递:using Syst...原创 2018-06-18 19:51:55 · 973 阅读 · 0 评论 -
c#语言------------值类型和引用类型(内存分析)
一、值类型和引用类型1、值类型和引用类型在内存上存储的地方不一样2、在传递值类型和传递引用类型的时候传递的方式不一样值类型传递我们称之为值传递,引用类型的传递我们称之为引用传递值类型:int、double、bool、char、decimal、struct、enum引用类型:string、数组、自定义类、集合、接口存储:值类型的数据存储在内存的栈中引用类型的数据存储在...原创 2018-06-18 17:04:29 · 242 阅读 · 0 评论 -
c#语言------------类型转换3(装箱和拆箱)
1、装箱就是将值类型转换为引用类型(object类型是一切类型的父类,根据里式转换法可以接受任意类型的数据,当然也可以强制转换为其他类型)2、拆箱就是将引用类型转换为值类型*在代码中尽量减少装箱和拆箱,一旦有装箱和拆箱就会影响运行时间**看两种类型是否发生了装箱和拆箱,要看这两种类型是否有继承关系;如果没有继承关系例如:string 转换为int,他们没有继承关系,在内存上一个在栈中一...原创 2018-06-18 15:25:39 · 957 阅读 · 0 评论 -
c#语言-------------类型转换2(里式转换)
一、里式转换(在C#中一切类都直接或间接继承与Object类)1、子类可以赋值给父类:实质如果一个地方需要一个父类做为参数,我们可以给一个子类代替(一个方法中需要传进一个子类的对象,子类做实参,我们可以让父类作为形参接收子类的对象)2、如果父类中装的是子类的对象,那么可以将这个父类转换为子类对象 **子类对象可以调用父类中的成员,但是父类对象只能调用自己的成员 3、 ...原创 2018-06-18 14:45:05 · 593 阅读 · 0 评论 -
C#语言--------------字符串的不可变性
在C#语言中数据分为值类型和引用类型,值类型数据存储在栈中,而引用类型数据存储在堆中,在堆中的地址将存储在栈中,调用时通过栈中的地址找到堆中的数据。例如字符串就是引用类型数据,而字符串的不可变性是指我们对字符串重新赋值,那么他的老值不会变(不会被覆盖)而是在堆中重新开辟一块空间 在上图中,当我们为值类型数据a重新赋值后老值将被新值取代,而当我们为引用类型数据str重新赋值后,老值"张...原创 2018-04-28 20:37:42 · 1137 阅读 · 0 评论 -
C#语言-----------多态中的虚方法和抽象类使用判定
如果父类中的方法有默认的事项,并且父类并且父类要被实例化,这是考虑将父类定义成一个普通类考虑用虚方法实现多态 当父类中的方法没有默认的实现,也不需要实例化,这是可以将该类定义为抽象类 当父类的不知道怎么实现用抽象类关键字 abstract 抽象方法不写方法体,连{}也不写因为{}叫空方实现不叫没有方法体 抽象类不能实例化(因为调用不到)抽象类与虚方法的区别是虚方法里有实现而抽象类中没有实现...原创 2018-05-06 17:23:32 · 186 阅读 · 0 评论 -
C#语言-------------抽象类
如果父类中的方法有默认的事项,并且父类要被实例化,这时考虑将父类定义成一个普通类考虑用虚方法实现多态 当父类中的方法没有默认的实现,也不需要实例化,这是可以将该类定义为抽象类 当父类的不知道怎么实现用抽象类关键字 abstract 抽象方法不写方法体,连{}也不写因为{}叫空方实现不叫没有方法体 抽象类不能实例化(因为调用不到)抽象类与虚方法的区别是虚方法里有实现而抽象类中没有实现一、抽...原创 2018-05-06 16:27:45 · 279 阅读 · 0 评论 -
C#语言------------多态的实现
多态概念:让一个对象能够表现多种状态(类型)实现多态的手段;1、虚方法 2、抽象类,3、接口1、虚方法将父类的方法标记为虚方法使用关键字virtual,这个方法可以被子类重写一遍虚方法:将子类父类的方法标记为虚方法用关键字:virtual。这个函数可以被子类重写override使用需方法最主要的是找出父类 ...原创 2018-05-06 14:21:15 · 221 阅读 · 0 评论 -
c#之接口
文章目录1、 接口的语法和特点1.1、 接口的语法1.2接口的特点1.3接口的显示调用1.3.1继承接口的类中本来就有与接口中的方法相同的方法此时调用的是不是接口中的方法1.3.2 显示调用接口中的方法1、 接口的语法和特点1.1、 接口的语法接口中的成员不允许添加修饰符,默认为public接口中不能写有方法体的方法//空实现也不行接口不能有字段和普通属性但是可以写自动属性[publ...原创 2018-10-22 23:16:42 · 169 阅读 · 0 评论