昨天老丈人生日,祝他生日快乐,身体健康,洪福齐天!今天补上昨天学习的东西。
这几天学习有点慢,慢慢学习啦。现在在看C# 的中间件,我比较喜欢Cool 的编程界面!当年的VI
找到一个比较好的风格配置网站:http://studiostyl.es/不过要用代理上去,哈哈~~,继续学习!
zy31
1、理解什么是运算符重载。
2、掌握运算符重载的程序设计方法。
3、通过运算符的重载程序设计,进一步感受相关的面向对象编程思想。
namespace 运算符的重载 { class program { static void Main(string[] args) { Complex z1 = new Complex(73, 89); Complex z2 = new Complex(21,16); Complex z3 = Complex.Add(z1, z2); //Complex z3= new Complex(z1.a+z2.a,z1.b+z2.b); Console.WriteLine("z1+z2={0}+{1}i",z3.a,z3.b); } } class Complex { public double a, b; public Complex(double real,double imagi){ a=real; b=imagi; } public static Complex Add(Complex z1,Complex z2){ return new Complex(z1.a+z2.a,z1.b+z2.b); } } }
namespace 运算符的重载 { class program { static void Main(string[] args) { Complex z1 = new Complex(73, 89); Complex z2 = new Complex(21,16); Complex z3 = z1 + z2; //Complex z3= new Complex(z1.a+z2.a,z1.b+z2.b); Console.WriteLine("z1+z2={0}+{1}i",z3.a,z3.b); Complex z4 = z1 -z2; Console.WriteLine("z1-z2={0}+{1}i", z4.a, z4.b); Complex z5 = z1 * z2; Console.WriteLine("z1*z2={0}+{1}i", z5.a, z5.b); Complex z6 = z1 / z2; Console.WriteLine("z1/z2={0}+{1}i", z6.a, z6.b); } } class Complex { public double a, b; public Complex(double real, double imagi) { a = real; b = imagi; } //加法 public static Complex operator +(Complex z1, Complex z2) { return Add(z1, z2); } public static Complex Add(Complex z1, Complex z2) { return new Complex(z1.a + z2.a, z1.b + z2.b); } //减法 public static Complex operator -(Complex z1, Complex z2) { return Sub(z1,z2); } public static Complex Sub(Complex z1,Complex z2) { return new Complex(z1.a-z2.a,z1.b-z2.b); } //乘法 static public Complex operator *(Complex z1, Complex z2) { return Multiply(z1,z2); } public static Complex Multiply (Complex z1,Complex z2){ Complex z=new Complex(0,0); z.a=z1.a*z2.a-z1.b*z2.b; z.b=z1.b*z2.a+z1.a*z2.b; return z; } //除法 static public Complex operator /(Complex z1, Complex z2) { return Divide(z1, z2); } static public Complex Divide(Complex z1, Complex z2) { Complex z = new Complex(0,0); double denominator = z2.a * z2.a + z2.b * z2.b; z.a = (z1.a * z2.a + z1.b * z2.b) / denominator; z.b = (z1.b * z2.a - z1.a * z2.b) / denominator; return z; } } }
zy32
1、理解this关键字,并掌握this关键字在程序设计中的用法。
2、掌握数组在方法中的传递过程。
3、掌握数组在属性中的传递过程。
namespace this关键字 { class program { static void Main(string []args ) { Time time1 = new Time(2, 32, 23); Console.WriteLine(time1.hour); Console.WriteLine(time1.minute); Console.WriteLine(time1.second); } } class Time { public int hour; public int minute; public int second; public Time(int hour ,int minute,int second) { this.hour = hour;//this 意思:就是“对象” this.minute = minute; this.second = second; } } }
namespace this关键字 { class program { static void Main(string []args){ At ced = new At(); int[] arr2 = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; ced.Arr(arr2); Console.WriteLine(ced.arr[3]); } } class At { public int[]arr=new int[9]; public void Arr(int[] arr1) { arr = arr1; } } }
namespace this关键字 { class program { static void Main(string []args) { At ced = new At(); int[] arr1 = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; ced.Arr=arr1; Console.WriteLine(ced.arr[3]); } } class At { public int[] arr = new int[9]; public int[] Arr { //get {}//只读 set { arr = value; } //只写 } } }
zy33
1、如何定义和使用索引器。
2、了解索引器和对象数组的区别。
3、通过索引器访问离散字段。
4、了解ToLower()函数和null关键字。
5、通过本课的学习养成良好的编程习惯。
namespace study33索引器 { class Program { static void Main(string[] args) { MyIndexer myindexer = new MyIndexer(); myindexer[2] = 22; myindexer[4] = 44; for (int i = 0; i <= myindexer.Length; i++) { Console.WriteLine("myindexer[{0}]={1}",i,myindexer[i]); } } } class MyIndexer { private int[] arr = new int[5]; public int this[int index] { get { if (index >= 0 && index < 5) return arr[index]; else return 0; } set { if(index>=0&& index<5) arr[index]=value; } } public int Length { get { return arr.Length; } } } }
zy34
1、了解栈和堆,以及栈的内存存储形式。
2、了解栈和堆的关系、区别。
3、认识值类型和引用类型。
4、通过一个程序理解对象引用符,并知道对象引用符的用法。
5、实践操作一下类视图。
zy35
1、理解什么是继承,什么是基类,什么是派生类。以及它们的关系。
2、通过一个程序来编写基类和派生类,让理论升华到实践。
zy36
1、理解protected保护成员的用法。以及和private及public的区别。
2、如何在基类中定义虚方法和在派生类中重写虚方法。怎么使用虚方法。
3、了解重载和重写的区别。
zy37
1、掌握普通方法隐藏的程序设计。
2、利用base关键字调用基类方法。
3、掌握抽象方法和抽象类的程序设计。
4、如何密封类和方法。
zy38
1、掌握派生类中无参构造函数和有参构造函数的编程方法。
2、认识Object类,并掌握Object类中的ToString()方法的使用,以及重写该方法。
zy39
1、理解多态,掌握多态基本编程思想。
2、掌握is运算符的用法。
zy40
1、掌握基类转换为派生类向下类型的转换。
2、掌握as运算符的用法。
3、如何定义和使用接口。