C#第二周总结
Csharp第二个星期学习了类与对象面对对象构造方法。继承与重写封装与构造方法1-根据面向对象的思想实现根据下标获取元素和根据姓名查找下标。2方法的重载在同一个类中方法名相同参数列表不同参数的个数 参数的类型 参数的顺序 与返回值无关。参数不同分为两种情况1、如果参数的个数相同那么参数的类型就不能相同。2、如果参数的类型相同那么参数的个数就不能相同。3-Private. 私有函数类型。意思就是使用词是对象的独有属性在继承与重写中。子内不能单独继承。Public在英文意思是公有的在计算机也如此。表示所有都可以调用。在继承与重写中可以直接父类的属性。例如NameAgeHeightSex归于子类使用。在此中我学习了方法的命名。如Public string Name;Public string Age;{get,set,}对于题目中给出的方法。Public void 然后是题目给的方法。Console.WriteLine(名字是Name )关于。Program. new关键字有三点。1在内存中开辟空间2开辟空间中创建对象。3调用对象函构造函数初始化对象。另外关于this关键字他代表当前函数对象了列入this.Name name;this.Age age;this.Sex sex;this.Chinese chinese;this.English english;this.Math math;构造方法用来创建对象并且可以在构造函数中对对象进行初始化。构造函数是用来创建对象的特殊方法方法名和类名一样没有返回值连void都不用构造函数可以有参数new对象的时候传递函数参数即可如果不指定构造函数则类有一个默认的无参构造函数。如果指定了构造函数则不在有默认的无参构造函数如果需要无参构造函数则需要自己来写。构造函数可以重载也就是有多个参数不同的构造函数。*如何编写一个完整的类:* 1.属性要私有化* 2.要有无参和有参构造方法* 3.要有set和get访问器* 4.重写ToString()* 5.要重写equals()和hashcode()* 6.要有序列化。Static关键字1.static是一个修饰符用于修饰成员。成员变量和成员方法2.static修饰的成员被所有的对象所共享。3.static优先于对象存在因为static的成员随着类的加载就已经存在了。4.static修饰的成员多了一种调用方式就可以直接被类名所调用 。 使用类名.静态成员 。5.static修饰的数据是共享数据对象中的存储的是特有数据。总结关键字权力修饰符封装—权限限制权限修饰符两种修饰符权限用于规定内部属性/方法能否被特定区域访问的规则1.prvate:只允许内方法访问、修改2.protected3.internal4.protected internal5.public任何方法都可以对其进行访问、修改继承的概念用于描述两个类Class之间的父子关系is a的关系子类可以直接使用父类的非私有成员。继承的语言描述。 1》Dog继承自Pet2》Pet派生出了Dog成员变量的访问形式/** 父类是一个大的类型封装了本类型通用的成员变量/成员方法,直接被子类继承使用* 子类是一个特殊的类特例的类封装了本子类型独有的成员变量/成员方法** 1.如果成员变量的名字与父类变量相同则直接使用的时候采用子类的变量父类变量隐藏a如果你是故意在子类中声明父类同名变量加一个new表示你是有意而为之b如果在子类中想要访问父类中同名变量可以加base.变量名.关于base 3、子类中通过base关键字访问直接父类成员变量在多层继承当中//在多层继承当中1.private 成员在子类/孙子类/曾孙子类/.....当中都无法访问2 protected 成员在子类/孙子类/曾孙子类/....当中都可以访问3 public 全面开放在多层继承当中成员变量/方法一致问题方法的重载Overload. 1同一个类方法名相同参数不同。2参数个数类型顺序。3重载与返回值无关。方法的重写Override. 在父类中有一个方法但是子类中也需要这个方法的名称但是子类中的方法的逻辑与父类方法中的逻辑不相同则需要在子类中对这个方法进行重写,重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变核心重写如果子类与父类的方法同名,那么系统默认隐藏父类中的同名方法实际调用之后使用的是子类自己的这个方法但是会有警告,告诉我们应该使用new关键字专门进行隐藏。隐藏的代码示例Father f new Father();//父类对象Son s new Son();//子类对象f.Fot(张三,1);//父类方法s.Fot(李四,1);//子类方法重写的前提:在进行重写时,父类中的这个方法必须是虚拟或者抽象;重写的好处重写的好处在于子类可以根据需要,定义特定于自己独特的行为。也就是说子类能够根据需要实现父类的方法,只是引用了父类方法的名字,但是有自己的行为,自己去实现一些方法。}Override(重写)和Overload(重载)的区别? Overload能改变返回值类型吗?方法重写子类中出现了和父类中方法声明一模一样的方法。返回值要求是一致(或者是子父类)的方法重载本类中出现的方法名一样参数列表不同的方法。与返回值类型无关