我们已经初步了解过Java的类与对象,现在我们就深入地了解一下Java中方法的定义和使用。
方法的概念我们已经理解了,定义一个方法与在App Inventor中定义一个过程相同,需要几个基本的要素:方法名、需要的数据类型和名称、返回的数据类型。格式如下:
xxxxxxxxxx
public 返回值类型 方法名(需要的数据类型1 需要的数据名称1,需要的数据类型2 需要的数据名称2){
//方法体
}
示例程序:
xxxxxxxxxx
public int plus(int x,int y){
return x+y;
}
Java中的方法分为带参方法和无参方法,意为有输入值的方法和无输入值的方法,与App Inventor里面采用有无返回值进行分类不同。
Java无参数方法不需要输入值,定义方法的过程需要在方法名的后面加一对没有内容的括号。
xxxxxxxxxx
public void method(){
//方法体
}
方法不能互相定义,不能嵌套定义,它们是平级的。以下示例是错误的:
xxxxxxxxxx
public void method1(){
public void method2(){
//这是错误的示例
}
}
方法的调用:
同一个类中调用方法直接调用即可,无参数方法的调用后面要加一对没有内容的括号。需要注意调用的是有返回值的方法还是无返回值的方法,无返回值的方法可以直接调用,而有返回值的方法需要赋值给其它变量或输出,作为一个数值进行操作。
xxxxxxxxxx
int result = method();
不同类中调用方法必须新建对象,新建对象之后使用.
进行调用。.
的意思即为の,翻译过来就是“某对象的
某方法”,假设在number类中已经定义了一个method方法:
xxxxxxxxxx
//不同类中调用方法
number example = new number;
int result = example.method();
无参数方法不需要输入数据,并不代表程序中无法改变其执行结果,方法中依然可以使用全局变量,外部的程序只需要更改全局变量就可能影响方法的执行结果。
其实,在Java中的类就相当于App Inventor的一个组件,Java中的方法就是App Inventor中的方法。在开发App Inventor拓展插件的过程中,只需要加上@SimpleFunction
注解就会生成一个对应的积木块,如果加上@SimpleProperty
则会生成一个属性积木块。
Java带参方法是非常常用的,大多数时候使用方法都需要带参数,以提高代码的复用性。通过对输入的值进行判断,从而根据输入的值输出不同的结果,需要注意的是:定义方法的时候的参数叫作形参,形参需要说明数据类型和局部变量的名称;调用方法的时候的参数叫作实参,实参不需要说明数据类型,只需要输入数据内容,形参与实参的位置是一一对应的关系,必须从左到右输入数据,同时要注意输入时的数据类型与定义的数据类型是否相同。示例如下:
xxxxxxxxxx
//定义方法
public int Test(int x,int y){
return x+y;
}
//调用方法
System.out.println(Test(1,2));
Java的构造方法也称构造器,构造方法只能通过new
关键字进行调用,构造方法可以有多个,构造方法与类同名。构造方法其实就是我们使用new
初始化一个对象时进行的一些预操作,比如说我new
一只狗,new
的时候就代表这只狗出生了,那么一只狗一旦出生就必定会具有性别、种类等属性,这时候就要通过构造器给这些属性进行赋值了,示例如下:
xxxxxxxxxx
class dog{
boolean sex=false;
int type=0;
public dog(boolean sex1,int type1) {
sex=sex1;
type=type1;
}
}
public class Test {
public static void main(String[] args) {
dog d=new dog(true,2);
System.out.println(d.type);
}
}
可以看到输出结果中type的值已经被更改了,这就是构造方法的功劳。
构造方法是一类特殊的方法。