C#笔记整理(八)
来源:互联网 发布:能微信提现的赚钱软件 编辑:程序博客网 时间:2024/05/19 03:24
面向对象编程——.NET
万物皆对象
1. 属性和字段\
包含在对象中的不同数据构成了对象的状态。字段和属性都可以键入,可以把信息存储在字段和属性中。但是,一般情况下,在访问状态时最好提供属性,而不是字段,这样可以更好的控制各种行为。
2. 方法\
“方法”用于表示对象中的函数,这些函数调用方式与其他函数相同,使用返回值和参数方法也相同。
对象的生命周期
- 构造阶段:第一次实例化该对象,初始化对象。
- 析构阶段:在删除一个对象时需要执行一些清理工作(释放内存等)\
构造函数:\
对象的初始化过程是自动完成的。不需要自己去寻找适于存储新对象的空间。但是有时候在对象初始化时需要执行一些额外的工作。例如:初始化对象的存储数据。\
所有类都至少包含一个构造函数
static void Main(string[] args){ MyClass mc = new MyClass(); //此时会输出666}class MyClass{ public MyClass() { Console.WriteLine("666"); } }
析构函数:\
一般情况下,不需要写,但是,在删除对象时需要完成一些操作,就应该去写具体的析构函数
静态
静态关键字:static\
静态成员可以在类的实例之间共享,所以可以将他们看成类的全局对象。静态属性和静态字段它可以访问独立于任何对象实例的数据。静态方法可以执行与对象相关、但与对象实例无关的命令。在使用静态成员时,甚至可以不用实例化对象。例如:
Console.WriteLine("666");
# OOP技术
Object-Oriented Programming
# 接口
接口是把公共实例(非静态)方法和属性组合起来,以封装特定功能的一个集合。\
接口不能单独存在,接口不能包含实现其成员的任意代码,而只能定义其本身。
static void Main(string[] args){ MyClass mc = new MyClass(); mc.Printf("Hello Word");}class MyClass : MyInterface{ public void Printf(string s) { Console.WriteLine(s); }}interface MyInterface{ void Printf(string s);}
一个类支持多个接口,多个类也支持相同接口。
继承
任何类都可以从另一个类中继承,这个类拥有它继承类的所有成员。和C++不一样,C#中只能有一个基类。
static void Main(string[] args){ MyClassB mc = new MyClassB(); mc.PrintfA(); mc.PrintfB();}class MyClassA { public void PrintfA() { Console.WriteLine("A"); }}class MyClassB:MyClassA{ public void PrintfB() { Console.WriteLine("B"); }}
多态
继承的一个结果是派生于基类的类的方法和属性上有一定的重叠,因此,可以使用相同的语法处理从同一积累实例化的对象。
采用virtual关键字和override关键字
static void Main(string[] args){ MyClassB mc = new MyClassB(); mc.PrintfA(); //此时输出了B }class MyClassA { public virtual void PrintfA() { Console.WriteLine("A"); }}class MyClassB:MyClassA{ public override void PrintfA() { Console.WriteLine("B"); }}
值类型和引用类型
- 值类型在内存的同一个地方存储它们自己和它们的内容。
- 引用类型存储指向内存中其他某个位置(称为堆)的引用,实际内容存储在这个位置
我的微博:
每天多学一点0.0
0 0
- C#笔记整理(八)
- 笔记整理(java基础八-----多线程)
- JAVA学习笔记整理八(多线程)
- Android入门学习笔记整理(八)
- C#笔记整理(三)
- C#笔记整理(四)
- C#笔记整理(六)
- C#学习笔记(八):集合
- C#学习笔记(八)
- JavaSE自学笔记整理(八)
- 黑马程序员---------笔记整理(java基础八-----多线程)
- 深度学习(Deep Learning) 学习笔记整理系列- 八
- JavaScript学习笔记整理(八)闭包未完
- C#笔记整理6
- C#知识整理笔记
- C#笔记整理(一)
- C#笔记整理(二)
- C#笔记整理(五)
- 《软技能-代码之外的生存指南》读书心得 ---10步学习法
- abstract class和interface的区别
- 堆排序及优先级队列Java实现
- poj 1990 moofest
- Java源代码解析—Object
- C#笔记整理(八)
- Linux 安装Tomcat
- 小白记录~JSP和JavaBean+Servlet模型图(MVC)图解
- Imageloader属性大全
- 前置申明的应用及其问题.
- C++的构造函数和析构函数
- Nginx+IIS+Redis 处理Session共享问题 1
- 371. Sum of Two Integers
- ACM程序设计书中题目--V(对书按照特定方式排序)