1.变量命名
Camel:多用于给变量或者字段命名,第一个单次首字母小写,其余每个单词的首字母大写。
给字段命名,前面必须加下划线。
_ fileName
Pascal:要求每个单词的首字母都要大写。
FileName
2.进程
一个应用程序就是一个进程,而一个进程又是由多个线程组成的。
进程帮助我们字内存中分配相应程序执行所需的空间。
3.面向对象
面向对象三大特性:封装,继承,多态
封装:
--->减少了大量的冗余代码
---->封装将一些复杂的代码封装起来,对外提供一个简单的使用接口。
继承:
--->减少类中的冗余代码
--->让类与类产生了关系,为多态打下基础
特性:
单根性:一个子类只能有一个父类
传递性:子类继承父类,子类又可以作为父类被继承。
里氏转换:
1.子类可以赋值给父类
2.如果父类中装的是子类对象,则可以将这个父类转换成相对应的子类对象
--->
is:返回bool类型,指示是否可以做这个转换
as:如果转换成功,则返回对象,否则返回NULL
作用:可以将所有子类当成父类来看 ,针对父类进行代码编写,写出通用的代码,适应需求的不断变更
class Program
{
static void Main(string[] args)
{
Person person = new Student();
if (person is Teacher)//判断person是否为Teacher对象
{
((Teacher)person).TeacherSayHello();
}
else
{
Student s = person as Student;//将person转换为student对象
if (s != null)
{
s.StudentSayHello();
}
}
Console.ReadKey();
}
}
public class Person
{
public void PersonSayHello()
{
Console.WriteLine("我是人类");
}
}
public class Student : Person
{
public void StudentSayHello()
{
Console.WriteLine("student");
}
}
public class Teacher : Person
{
public void TeacherSayHello()
{
Console.WriteLine("我是老师");
多态;
--->虚方法
virtual override
--->抽象类
abstract override
--->接口
interface
类决定了对象将要拥有的属性和行为。
4.关键字
new:
1)创建对象
--->在堆中开辟空间
--->在开辟的堆空间中创建对象
--->调用对象的构造函数
2)隐藏父类的对象
this:
1.代表当前类的对象
2.显示的调用自己的构造函数
base:
1.显示调用父类的构造函数
2.调用父类的成员
5.抽象类实现多态
1 class Program
2 {
3 static void Main(string[] args)
4 {
5 UDisk u = new UDisk();
6 MobileDisk m = new MobileDisk();
7 Telphone t = new Telphone();
8 Computer c = new Computer();
9 c.MS = t;
10 c.CpuRead();
11 c.CpuWrite();
12 t.PlayMusic();
13 Console.ReadKey();
14
15 }
16 }
17
18 abstract class MobileStorage
19 {
20 public abstract void Read();
21 public abstract void Write();
22 }
23
24 class MobileDisk : MobileStorage
25 {
26 public override void Read()
27 {
28 Console.WriteLine("移动硬盘在读取");
29 }
30 public override void Write()
31 {
32 Console.WriteLine("移动硬盘在写入");
33 }
34 }
35
36 class UDisk : MobileStorage
37 {
38 public override void Read()
39 {
40 Console.WriteLine("U盘在读取");
41 }
42
43 public override void Write()
44 {
45 Console.WriteLine("U盘在写入");
46 }
47
48 }
49
50 class Telphone : MobileStorage
51 {
52 public override void Read()
53 {
54 Console.WriteLine("手机在读取");
55 }
56
57 public override void Write()
58 {
59 Console.WriteLine("手机在写入");
60 }
61
62 public void PlayMusic()
63 {
64 Console.WriteLine("手机在播放音乐");
65 }
66 }
67
68 class Computer
69 {
70 public MobileStorage MS
71 {
72 get;
73 set;
74 }
75 public void CpuRead()
76 {
77 this.MS.Read();
78 }
79 public void CpuWrite()
80 {
81 this.MS.Write();
82 }
83 }