c#学习之–对象

  • Post author:
  • Post category:其他


一:对象–让代码更合理

你写的每一个程序都要解决一个问题。

构建一个程序时,首先要考虑你的称需要解决什么问题,这通常是个不错的想法。这也说明了为什么对象非常有用。基于对象,你可以根据所要解决的问题建立代码的结构,把宝贵的时间用来考虑需要处理的具体问题,而不是深陷于编代码的繁杂细节中,如果适当的适用对象,最后不仅写代码轻松,读代码也会很容易,另外还有利于修改代码。

1,先设置一个解决一个问题的类

2,再类中列出所有能解决这类问题的方法,具体动作就在这些方法中完成。

注意:有一些方法具有返回值(return value),也就是在这个方法中计算生成的一个值,并将这个返回值发送调用该方法的语句。返回值的类型(如string或int)称为返回类型(return type)。

return语句告诉方法要立即推出。如果你的方法没有返回值(这说明声明时方法的返回类型为void),那么return语句就以一个封号结束,并不要求方法中必须有这样一个return语句,不过,如果方法确实有一个返回类型,就必须使用return语句。

eg:public int MultiplyTwoNumbers(int firstNumber,int secondNumber)

{

int result = firstNumber * secondNumber;

return result;

}以下是调用一个方法的语句,这个方法将两数相乘,返回一个int:

int myResult = MultiplyTwoNumber(3,5);

3,对象是c#的一个工具,可以用来处理一组类似的事物。通过使用对象,只需要编写一次类,但是在程序中可以根据需要使用多次。

要创建一个对象,只需要new关键字和类名。

Navigator navigator1 = new Navigator();//从一个类创建新对象时,这成为创建该类的一个实例。

现在可以使用对象了!由类创建一个对象时,这个对象拥有这个类的所有(public)公共方法。

4,方法中含有“static”,这就是所谓的静态方法,如果把static从方法声明中去掉,则必须创建一个类的实例才能调用这个方法,除了这个却别之外,静态方法与对象方法几乎一       样。可以为静态方法传入参数,也可以返回值,而且静态方法也放在类中。可以把整个类都标记为static,这样一来,这个类中的所有方法也都必须是静态的,如果想把一个非静态的方法增加到静态类当中,则将无法编译。

常见问题:

1,问:考虑“静态”的东西时,我总认为这是一种不会改变的东西,这是不是说,非静态的方法可以改变,而静态方法不能?他们的行为是不是不一样?

答:不是这样的,静态和非静态方法的行为完全相同,唯一的区别是,静态的方法不要求有实例,而非静态方法需要先有一个实例。

2,问:那么,创建一个对象实例之前是不是不能使用类?

答:可以使用类的静态方法。不过,如果有非静态方法,使用这些方法之前就不许先有一个实例。

3,问:为什么还要这种许需要实力的方法呢?为什么不干脆把所有方法都设置为静态的方法呢?

答:这是因为,如果由对象记录某些数据,就可以使用各个实例的方法来处理这些数据,这样一来就会减少方法之间数据的耦合。各个对象干自己的事情。

二:对象的状态:

1,方法是对象做什么,字段则是对象知道什么。

2,对象的行为由方法定义,另外使用字段来跟踪其状态。

3,程序创建一个新对象时,将添加到堆中。程序创建一个对象时,会放在计算机内存中的某一部分,称为堆(heap)。代码用new语句创建一个对象时,c#会立即在堆中预留出空间,来存储该对象的数据。

3,仔细考虑代码要解决的问题,这可以让你的代码更容易读、写。如果你为方法选择的名字很直观,对于了解这个问题的人来说含义很清楚,理解这个代码,设置开发代码都会容易很多。

4,做一个功能之前,画类图可以帮助你组织类,让他们更有意义。

5,用更简便的对象初始化方法(对象初始化方法可以节省你的时间,使代码更紧凑,更可读)

eg:  ❶这是原来为初始化joe的Guy对象所写的代码:

joe = new Guy();

joe.name = “Joe”;

joe.cash = 50;

❷删除后面两行代码,并删除Guy()后面的封号,增加一个右大括号。

joe = new Guy (){

❸按空格。一旦按下空格,IDE就会弹出一个智能提示窗口,显出能够初始化的所有字段。

❹完成这个对象初始化方法,现在你可以少写两行代码!

joe = new Guy(){cash = 50 ,name = “Joe ”};

三:关于设计直观类的一些想法

★构建程序是为了解决一个问题

花点时间来考虑这个问题,它能很容易地划分成多个部分吗?如何向其他人结束这个问题?这些都是涉及类时需要考虑的一些很好的问题。

★你的程序用到了那些实际事物?

如果一个程序来帮助动物管理员记录动物的喂养时间表,则可能要对不同类型的食物和不同类型的动物建立类。

★对类和方法使用具有描述性的名字

别人应该通过类和方法的名字就能明确他们的作用。

★查找类之间的相似性

有两个类如果确实非常相似,可以将他们合并为一个类。



版权声明:本文为zt18810671762原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。