在方法的语法格式中,方法可以有返回值,也可以有参数,当方法不需要传递任何参数时,括号内什么也不用写。下面我们今天就尝试一下像方法中传递一些类型的参数,来满足我们的需求。
调用方法并传递参数时,参数其实就是方法的自变量,因此参数要放在括号里来进行传递。
//我们就用一个圆柱体类Cylinder介绍变量的调用方法
class Cylinder{
double radius;
int height;
double pi;
void setCylinder(double r,int h, double p){//这是具有三个参数的方法
pi = p;
radius = r;
height = h;
double area{
return pi*radius*radius;
}
double voluem{
return area()*height;
}
}
}
在上面的代码中我们定义了带参数的方法setCylinder(),且此方法接受了三个参数:r, h, p .
注意:setCylinder()方法中的三个参数变量 r ,h, p,均是局部变量,他们的作用范围仅限于setCylinder()方法的内部,一旦离开此方法,他们就会失去作用。
下面我们写一下主方法:
public class Demo{
public static void main(String[] args){
Cylinder volu = new Cylinder();
void setCylinder(2.5,5.3,3.14);
System.out.println("底面半径"+volu.radius);
System.out.println(volu.height);
System.out.println(volu.pi);
System.out.println("底面积"+volu.area());
System.out.prntln("圆柱的体积"+voluem());
}
}
volu.setCylinder(2.5,5,3.14); 就是调用此方法并传递参数到这个方法体
注意:若通过方法调用,将外部传入的参数赋值给类的成员变量,方法的形式参数与类的成员变量重名时,则需要用this关键字来标识成员变量。
例如上例中的方法setCylinder()
class Cylinder{
double radius;
......
void setCylinder(double radius){
radius = radius;//用参数radius给成员变量radius赋值
......
}
}
在上面的代码中赋值语句"radius = radius;"我们就分不清那个是成员变量,哪一个是方法的变量。由于形式参数是方法内部的局部变量,所以当成员变量与方法中的局部变量同名时,在方法内对同名变量的访问就是访问的那个局部变量。所以当我们特指成员变量时,应该这样写:
class Cylinder{
double radius;
......
void setCylinder(double radius){
this.radius = radius
......
}
}
这样我们用关键字this特指了成员变量
下面是完整代码:
public class Demo{
public static void main(String[] args){
Cylinder volu = new Cylinder();
void setCylinder(2.5,5.3,3.14);
System.out.println("底面半径"+volu.radius);
System.out.println(volu.height);
System.out.println(volu.pi);
System.out.println("底面积"+volu.area());
System.out.prntln("园柱的体积"+voluem());
}
}
//我们就用一个圆柱体类Cylinder介绍变量的调用方法
class Cylinder{
double radius;
int height;
double pi;
void setCylinder(double r,int h, double p){//这是具有三个参数的方法
pi = p;
radius = r;
height = h;
double area{
return pi*radius*radius;
}
double voluem{
return area()*height;
}
}
}