首页 > 技术文章 > 在函数的重载中方法的返回值类型和参数的名字不参加比较

geziwu 2014-02-21 16:58 原文

程序代码:


class Sun
{float x;  //实例变量
static int y;   //类变量
}
c.当局部变量与成员变量名字相同时,则成员变量被隐藏,即这个成员变量在这个方法内暂时失效,例:

程序代码:


class Tom
{int x=90,y;
void f()
{int x=3;
y=x;  //y得到的值应是3,因为成员变量x=90与y在此方法体里失效
}
}
但如果想在方法体内使用成员变量则通过关键字 this 来实现,例:
程序代码:


class 三角形
{float sideA,sideB,sideC,lengthSum;
void setside(float sideA,float sideB,float sideC)
{this.sideA=sideA; //this.sideA表示成员变量sideA
this.sideB=sideB;
this.sideC=sideC;
}
}

(2)方法
方法即是函数,包括声明和定义,在类体中是函数的定义,与C或C++中函数的声明或定义格式是一样的.

a.类方法和实例方法
实例方法即在方法返回值类型前加上关键字static,例:
程序代码:

class A
{int a;
float max(float a,float b)//实例方法
{//...}
static float min()//类方法
{//...}
}
[code]
b.方法的重载
方法的重载定义为多个函数定义时函数名必须相同,参数的类型和个数必须不同.例:

[code]
class Area
{float getArea(float r)
{return 3.14*r*r;}
double getArea(float x,int y)
{return x*y;}
float getArea(float x,float y)
{return x+y;}
double getArea(float x,float y,float z)
{return x*y*z*0.2;}
}

注意:在函数的重载中方法的返回值类型和参数的名字不参加比较.

c.构造方法
构在方法是一种特殊方法,它的名字必须与类名完全相同,而且没有类型,构造方法也可以重载的.
用法:一般用类创建对象时,使用构在方法,后面会有详细说明.

程序代码:


class 梯形
{float 上底,下底,高;
梯形()
{上底=60;
下底=100;
高=20}
梯形(float x,float y,float z)
{上底=x;
下底=y;
高=z;
}
}

baiwei595.com
chaishenyu78.com
xindongt465.com
2.对象
类是创建对象的模板.当使用一个类创建了一个对象时,也就是说给出了这个类的一个实例.
(1)对象的创建:包括对象的声明和为对象分配内存空间
声明格式: 类的名字  对象的名字;

分配内存空间格式; 类的名字 对象的名字=new 类的名字();  例:

程序代码:


class XiyoujiRenwu
{   float height,weight;
    String head, ear,hand,foot, mouth;
    void speak(String s)
{  System.out.println(s);
    }
}
class A
{   public static void main(String args[])
{  XiyoujiRenwu  zhubajie;       //声明对象
       zhubajie=new  XiyoujiRenwu(); //为对象分配内存,使用new 运算符和默认的构造方法
    }
}
程序代码:

class Point
{  int x,y;
    Point(int a,int b)
{  x=a;
       y=b;
    }
}
public class A
{  public static void main(String args[])
{  Point p1,p2,p3;                 //声明对象p1和p2
      p1=new Point(10,10);         //为对象分配内存,使用 new 和类中的构造方法
      p2=new Point(23,35);  //为对象分配内存,使用 new 和类中的构造方法
      // p3=new Point(); 错误语句!当类中定义了一个或多个构造方法,那么java不提供默认的构造方法
}
}

(2)对象的内存模型
声明对象时,内存不分配空间,只存在一个空对象;当用new 分配内存空间时,类中的成员变量就会被分配到相应的空

间中,并通过构造方法(如果有)初始化,函数的入口地址也会被载入内存.但此时局部变量不会被分配内存空间,只有

当对象调用类中的函数时,函数中的局部变量才被分配空间,但函数执行完后,局部变量释放内存,所以如果在函数中

没有对局部变量进行初始化,就没有默认值,因此在使用局部变量之前,要事先为其赋值.   
创建多个对象之间没有相互状态影响,个用个自的内存空间.

推荐阅读