方法是一种根据代码的功能和用途将代码分组到特定块中的技术。要创建一个方法,必须做两件事,即定义方法和调用方法 Java 编程中的方法有两种类型,一种是没有返回值的方法,另一种是有返回值的方法。
我们来看一下定义没有返回值的方法的格式代码:
void 方法名(){
语句1
语句2
.........
语句n
}
没有定义返回值的方法,我们用void关键字作为它的前缀,与方法名一起运用。
再来看一下带有返回值的方法格式代码:
void 方法名(){
语句1
语句2
.........
语句n
return 关键字
}
与使用 void 关键字作为前缀的没有返回值的方法不同,具有 return 值的方法以返回值类型开始,然后紧跟着方法的名称。方法的返回值类型可以是整数、浮点数、字符串、数组或对象。具有返回值的方法也返回与返回值类型匹配的值,return 关键字用于将值返回给方法。
我们来看一个没有返回值的方法案例:
添加一个列表,变量名自定
再添加一个按钮,文本改为“展示数据”,变量名自定
开始进行编码,我们先导入Vector类:
import java.util.Vector;
创建一个名为 DisplayData 的方法,该方法将用于显示 10 个学生的名字,代码如下:
Vector data=new Vector();
void DisplayData(){
data.add("依凡");
data.add("春白");
data.add("新槐");
data.add("青筠");
data.add("白云");
data.add("盼夏");
data.add("夜丹");
data.add("醉芹");
data.add("新柔");
data.add("幼琴");
listData.setListData(data);
}
定义方法之后,下一步是调用方法,当单击“展示数据”按钮时,将调用DisplayData 方法。
下面是按钮事件的代码:
private void DisplayButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
DisplayData();
}
执行结果如图所示:
调用 DisplayData 方法是通过使用代码 DisplayData()来完成的,通过在 DisplayData 方法中分组语句来显示学生的名字,它将减少在“展示数据”按钮时的代码编写,如果要显示的数据发生了更改,那么只需更改 DisplayData 方法中包含的语句。这便是使用方法的便捷之处。
再来看一下带返回值的方法案例:
在Java GUI 里做一个物品价格展示器
添加两个文本标签: “商品”和“价格”,然后添加两个文本字段,变量名自定。再添加一个按钮,变量名自定,样式如图:
下面是定义 getltemName 方法和 getltemPrice 方法的代码
String getItemName() {
String name="笔";
return name;
}
int getItemPrice() {
int price=2;
return price;
}
在“显示商品”按钮的事件中调用这 2 个方法,以下是代码。
private void DisplayButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String item=getItemName();
int price=getItemPrice();
txtltem.setText(item);
txtPrice.setText(Integer.toString(price));
}
执行后结果如下:
在本例中,getltemName 方法有一个 String 类型的返回值,并以字符串的形式返回该值(“笔”)。getItemPrice 方法有一个类型为 int 的返回值,值为(2) 。
将处理的数据用作参数,则方法可以处理不同的数据,通过在方法中传递参数,该方法处理的数据将会是动态的。
使用参数定义方法的格式:
void 方法名(数据类型 参数1,数据类型 参数2){
语句1
语句2
.........
语句n
}
或:
void 方法名(数据类型 参数1,数据类型 参数2){
语句1
语句2
.........
语句n
return 关键字
}
上面的两种格式展示了如何定义带有参数的方法。在这两种格式中,par1和 par2 都是方法参数,传递给方法的参数数量取决于需要,参数数量可以是一个或多个。
方法的参数实际上是将由方法处理的数据,因此参数的数据类型由要处理的数据类型决定。
我们来看一个案例:
下面是定义 getFirstName 方法的代码:
String getFirstName(String FullName) {
int pos=FullName.indexOf(' ');
String firstname=FullName.substring(0,pos);
return firstname;
}
这是按钮事件的代码:
private void DisplayButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String fullname=txtFullName.getText();
txtFirstName.setText(getFirstName(fullname));
}
执行后输入名字,结果如图所示:
在本例中,getFirstName 方法中的参数具有一个字符串类型,因此在调用方法时传递的值必
须是一个字符串。
本例中需要记住的是,当定义一个带有参数的方法时,那么当调用该方法时,我们必须传递一个与方法参数具有相同类型的值。传递给方法的值或参数的数量必须与方法定义时的参数数量相同。
方法重载是一种编程技术,它允许两个或多个方法具有相同的名称,但具有不同类型的参数。通过使用重载技术,可以创建两个或多个具有相同名称的方法,但每个方法具有不同的参数。只有当我们希望方法处理不同类型的数据时,才能对方法进行重载,两个同名的方法能够处理不同类型的数据。
下面是简单的方法重载案例:
int(整型) Add(int a,int b){
return (a+b);
}
double(浮点型) Add(double a, double b){
return (a+b);
}
从上面的案例中可以看到如何重载Add方法。这两种方法具有相同的功能,即添加两个数字。第一个 Add 方法有一个 int 类型的返回值和两个 int 类型的参数,而第二个 Add 方法有一个 double 类型的返回值和两个 double 类型的参数。
递归方法是调用自身的方法。递归是一种允许方法调用自身的编程技术,递归方法将重复调用它自身,因此我们需要一个使调用停止的条件。使用递归方法解决问题与使用循环语句解决问题具有相同的工作原理,因此,可以用循环语句解决的问题也可以用递归方法解决。
可以像下面这样使用递归方法:
void Display(int n) {
if(n>1)
Display (n-1);
System.out.println("我爱 Java");
}
通过在调用 Display 方法时传递值 10 作为参数,每呼唤一次,就调用一次Display 方法,这样就可以使程序显示字符串“我爱Java”10 次。
总结
这次进行了java中方法使用的总结,参考了许多资料,自己也进行了一些整合,希望能够帮助打击理解java中的方法。