一:对象–让代码更合理
你写的每一个程序都要解决一个问题。
构建一个程序时,首先要考虑你的称需要解决什么问题,这通常是个不错的想法。这也说明了为什么对象非常有用。基于对象,你可以根据所要解决的问题建立代码的结构,把宝贵的时间用来考虑需要处理的具体问题,而不是深陷于编代码的繁杂细节中,如果适当的适用对象,最后不仅写代码轻松,读代码也会很容易,另外还有利于修改代码。
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 ”};
三:关于设计直观类的一些想法
★构建程序是为了解决一个问题
花点时间来考虑这个问题,它能很容易地划分成多个部分吗?如何向其他人结束这个问题?这些都是涉及类时需要考虑的一些很好的问题。
★你的程序用到了那些实际事物?
如果一个程序来帮助动物管理员记录动物的喂养时间表,则可能要对不同类型的食物和不同类型的动物建立类。
★对类和方法使用具有描述性的名字
别人应该通过类和方法的名字就能明确他们的作用。
★查找类之间的相似性
有两个类如果确实非常相似,可以将他们合并为一个类。