第五周学习方法使用
定义没有返回值的方法和有返回值的方法
定义没有返回值的方法,将void 关键字用作前缀,然后与方法名一起使用
Vector data=new Vector();
public DataForm() {
initComponents();
}
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);
}
定义有返回值的方法,与使用void关键字作为前缀的没有返回值的方法不同,具有return值的方法以返回值类型开始,然后紧跟着方法的名称
String getItemName()
{
String name="笔";
return name;
}
int getItemPrice()
{
int price=2;
return price;
}
方法的调用
private void DisplayButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
DisplayData();
}
带参数的方法
如果将处理的数据用作参数,则方法可以处理不同的数据。通过在方法中传递参数,该方法处理的数据将是动态的
String getFirstName(String FullName)
{
int pos=FullName.indexOf(' ');
String firstname=FullName.substring(0,pos);
return firstname;
}
将get到的参数,传递给getFirstName方法,然后调用
private void DisplayButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String fullname=FullName.getText();
FirstName.setText(getFirstName(fullname));
}
重载方法
方法重载是一种编程技术,它允许两个或多个方法具有相同的名称,但具有不同类型的参数。通过使用重载技术,可以创建两个或多个具有相同名称的方法,但每个方法具有不同的参数。只有当我们希望方法处理不同类型的数据时,才能对方法进行重载。两个同名的方法能够处理不同类型的数据。
int CalculateArea(int r)
{
int result=(int)(Math.PI*r*r);
return result;
}
double CalculateArea(double r)
{
double result=Math.PI*r*r;
return result;
}
int CalculateCircumference(int r)
{
int result=(int)(4*Math.PI*r);
return result;
}
double CalculateCircumference(double r)
{
double result=4*Math.PI*r;
return result;
}
private void CalculateIntButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(!txtRadius.getText().isEmpty())
{
int r=(int)Double.parseDouble(txtRadius.getText());
int area=CalculateArea(r);
int circumference=CalculateCircumference(r);
txtArea.setText(""+area);
txtCircumference.setText(""+circumference);
}
}
private void CalculateDoubleButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(!txtRadius.getText().isEmpty())
{
double r=Double.parseDouble(txtRadius.getText());
double area=CalculateArea(r);
double circumference=CalculateCircumference(r);
txtArea.setText(String.format("%.4f",area));
txtCircumference.setText(String.format("%.4f",circumference));
}
}
通过重载CalculateArea方法和CalculateCircumference方法,使得这两个方法可以处理int和double类型的数据。调用重载方法的方法与通常的方法调用相同。当你将一个int类型的参数传递给CalculatedArea方法和CalculatedCircumference方法,程序将调用并执行CalculatedArea法和CalculatedCircumference法处理参数的int类型。如果通过双类型参数,程序将调用并执行CalculatedArea方法和CalculatedCircumference方法处理参数和双的类型通过使用相同的数据。
创建递归方法
递归方法是调用自身的方法。递归是一种允许方法调用自身的编程技术。递归方法将重复调用它自身,因此我们需要一个使调用停止的条件。使用递归方法解决问题与使用循环语句解决问题具有相同的工作原理。因此,可以用循环语句解决的问题也可以用递归方法解决。
Vector data=new Vector();
public StringForm(){
initComponents();
}
void Display(int n)
{
if(n>1)
Display(n-1);
data.add("爱你一生一世"+n);
}
private void DisplayButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Display(10);
listString.setListData(data);
}
程序成功地重复显示了字符串“爱你一生一世”10次,Display方法调用将在n从1到10时开始,调用Display方法的过程将如图