成员函数 成员函数讲解

大家好,小编来为大家解答以上的问题 。成员函数讲解 , 成员函数这个很多人还不知道,现在让我们一起来看看吧!

成员函数 成员函数讲解

文章插图
1、成员函数相当于C或C++中的函数 。
2、你应该用如下的方式说明一个成员函数:Type name (Parameter)//function body注意:每一个成员函数必须返回一个值或声明返回为空(void) 。
3、它返回类型的说明告诉编译器它将返回什么类型的值 。
4、在某些情况下 , 成员函数需要表示它是否成功的完成了它的工作 , 此时返回类型通常为布尔型的 。
5、参数表是用逗号分开的一组变量 , 它将为成员函数提供所需信息 。
6、下面例子中定义了一个成员函数 。
7、通过它 , 你的矩形类可以计算自己的面积了:int getArea(int w,int h){int a;a=w*h;return a;}另外 , 矩形还需要对自己进行描绘 , 因此它需要成员函数drawRect() , 此时 , 你的矩形类的定义将如下所示:public class DrwRect{public static void main(String args[]){class Rectangle{int width,height,area;public Rectangle(int w,int h){width=w;height=h;area=getArea(w,h);}protected int getArea(int w,int h){int a;a=w*h;return a;}public void drawRect(){int i,j;for(i=width;i>0;i--)System.out.print("#");System.out.print("") ;for(i=height-2;i>0;i--)System.out.print("#");for(j=width-2;i>0;j--)System.out.print("");System.out.print("#");for(i=width;i>0;i--)System.out.print("#");System.out.print("");}} //Rectangleint w=Integer.valueOf(args[0]).intValue();int h=Integer.valueOf(args[1]).intValue();Rectangle myrect=new Rectangle(w,h);myrect.drawRect();}} 上例中最后一个“#”号后面还有一个System.out.print("")这是由于这个成员函数在上一行没有结束而且缓冲区没有溢出时将不把输出结果写屏 。
8、若你使用print成员函数 , 却没有得到输出 , 这时仔细确认一下你是否以""来结束你的输出流 。
【成员函数 成员函数讲解】9、2:不同类型的成员函数在上例的成员函数声明中你需要注意两点:getArea()定义为private型 , drawRect()定义为public型 。
10、public型意味着任何类都可以调用它 。
11、private型 , 它只能被所声明的类内部调用 。
12、这些说明类型同样适用于数据变量 。
13、若有人想改变一个私有变量 , 通常要引用下面的成员函数:public void setWidth(int w){width=w;}注意:在Java中 , protected只是作为关键字出现 , 而没有相应的功能 。
14、3:成员函数的重载假如你必须在不同情况下发送不同的信息给同一个成员函数的话 , 该怎么办呢?你可以通过对此成员函数说明多个版本(version)的方法来实现重载 。
15、重载的本质是创建了一个新的成员函数:你只需给它一个不同的参数列表(parameterlist) , 如下例所示:void get Area(int w,int h);void get Area(float w,float h);在第二种情况下 , 成员函数get Area()接受两个浮点变量作为它的参数 , 编译器根据调用时的不同参数来决定该调用哪一种成员函数 , 假如你把两个整数提供给成员函数 , 你就调用第一个成员函数;假如你把两个浮点数提供给成员函数 , 第二个成员函数就被调用 。
16、4:静态成员除了public、private和protected以外 , 你还可以把成员说明为static(静态) 。
17、static修饰符表明一个变量或成员函数对所有类的实例都是相同的 , 你也许想使用一个所有Rectangle类都可以使用的变量 , 来说明该类的版本(version) , 假如你把它说明成一个static , 那么该变量将对该类的所有实例都是一样的 , 如:static int version=1;静态成员函数和静态变量的优点就在于他们能在没有创建类的任何一个实例的情况下被引用 , 引用时在“.”域前 , 可直接使用类名而无须使用对象名 。