第15节 从抽象到类(下)
方法的定义
方法的定义包括两部分:方法声明和方法体。一般格式为:
方法声明部分 {
方法体的内容
}
void speedUp(int s) { //方法定义,刻画加速功能 void代表这个方法无返回值,()代表传递的参数 这是方法声明部分
int a; //方法体中声明的a只能在这个方法中使用
speed=speed+s;
This.a //中间这是方法体
}
void speedDown(int d) { //方法定义,刻画减速功能
speed=speed-d;
}
void setPower(int p) {
power=p;
}
int getPower() { //返回int类型
return power;
}
double getSpeed() { //返回double类型
return speed;
}
}
1)方法声明
方法声明包括方法名和方法的返回类型,如:
double getSpeed() {
return speed;
}
注:方法的返回类型、方法的参数、方法的名字
1、return语句的作用:
a、返回一个值,这个值可以是任意类型。
b、使程序返回到操作系统(即终止程序)
2、java中对于一个函数,不论有没有返回值类型,都可以带有return 语句。但是区别在于,return 语句是否可以返回一个值(这取决与该函数的返回值类型)。
a、如果函数有返回值类型(即返回值类型不为void ),则必须带有返回相应类型值的return 语句。
b、如果函数没有返回值(即返回值类型为void ),则函数中return 语句(如果存在return语句!)的后面不能加任何的变量。(该情况下的函数中也可以没有return 语句,但是如果有的话,return 只能作为返回操作系统的作用使用。)
2)方法体
方法声明之后的一对大括号“{” ,“}”以及之间的内容称作方法的方法体。方法体的内容包括局部变量的声明和Java语句。
在方法体中声明的变量和方法的参数被称作局部变量。
局部变量只在声明它的方法内有效,而且与其声明的位置有关。方法的参数在整个方法内有效,方法内的局部变量从声明它的位置之后开始有效。如果局部变量的声明是在一个复合语句中,那么该局部变量的有效范围是该复合语。
//没有返回值的方法的创建
public class Person {
int age;
float height = 1.8f;
double weight = 160;
void eat(){
System.out.println("eat");
}
void sleep(){
System.out.println("sleep");
}
}
//有返回值的方法的创建
public class Person {
int eatCount(){
return 2; //直接返回2
}
}
//有返回值并且带参数的方法
public class Person {
int eatCount2(int num){
int result = num-2;
return result;
}
}
注意事项
1、如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,即这个成员变量在这个方法内暂时失效。
如果想在该方法中使用被隐藏的成员变量,必须使用关键字this
2、类体的内容由两部分构成:一部分是变量的声明,另一部分是方法的定义。 对成员变量的操作只能放在方法中,方法可以对成员变量和该方法体中声明的局部变量进行操作。在声明成员变量时可以同时赋予初值,但是不可以在类体中有单独的赋值语句(不可以有变量的声明和方法的定义以外的其它语句)
public class Person {
int getAge(int age){ //调用这个方法的人往里面传入了一个参数,并且和这个方法同名
return this.age; //重名时成员变量被隐藏,如果想使用被隐藏的成员变量,必须使用关键字this
}
}