java吧 关注:1,239,806贴子:12,711,966
  • 5回复贴,共1

新手问一个关于定义参数方法的问题

只看楼主收藏回复

关于定义带参数的方法.这里老师还没有讲..我先预习了这部分..书上也举了一个例子..我也看过了..但是总觉得好象有些模糊..
感觉好象不知道要在什么情况下需要自己定义一个带参数的方法...
比如书后有一道题目..是关于ATM取款机的..
要求是实现存款和取款业务..用带参数的方法..

我自己写了一个代码..但是我写着写着就忘了要用带参数的方法了..这个是我写的..

import java.util.Scanner;
public class Test9$2_4 {
int accounts = 1234567890; //预设ID
int password = 123; //预设密码
double balance; //余额
double deposit; //存钱

/**
 * 登陆
 */
public void login() {
Scanner input = new Scanner(System.in);
System.out.print("请输入卡号: ");
int id = input.nextInt();
System.out.print("请输入密码: ");
int psw = input.nextInt();
if (id == accounts && psw == password) {
showBalance();
} else {
System.out.print("您输入的卡号密码不匹配,无权进入系统.");
}

}

/**
 * 显示余额
 */
public void showBalance() {
Scanner input = new Scanner(System.in);
System.out.println("您当前余额是: " + balance);
System.out.println("1. 存 款 服 务\n2. 取 款 服 务");
System.out.println("请选择您要进行的操作:");
int no = input.nextInt();
if (no == 1) {
deposit();
} else if (no == 2) {
get();
}

}

/**
 * 存款
 */
public void deposit() {
Scanner input = new Scanner(System.in);
System.out.print("请输入存款金额: ");
deposit = input.nextDouble();
balance = balance + deposit;
System.out.print("存款成功.");
showBalance();
}

public void get() {
Scanner input = new Scanner(System.in);
System.out.print("请输入取款金额: ");
double get = input.nextDouble();
if (get < balance) {
balance = balance - get;
System.out.print("取款成功.");
} else {
System.out.print("您的余额不足.");
}
showBalance();
}

/**
 * 测试类
 */
public static void main(String[] args) {
Test9$2_4 test = new Test9$2_4();
test.login();
}

}

可能写的不是很好...献丑了...
我写完以后才想起来要定义带参数的方法..但是现在我再回头去看..我就想不出来应该要怎么去定义这个方法里的参数了..我不太明白具体是什么时候需要定义这个参数..我觉得好象不用参数也可以..

不知道大家能不能给我出点建议...


IP属地:江苏1楼2008-04-27 01:59回复
    顶一下,我到现在还是不是很清楚..希望大家帮忙能提点一下..
    另外我看到书上有一个例题
    具体的我就不写那么多了,我就写一下我不明白的地方
    String [] goodsName; //先声明了一个数组
    public void setData(String[] goodsName1) {
    goodsName = goodsName1;
    这里只是声明了一个数组.setData()里的参数应该是给这个数组赋值吧?
    那不用写数组下标吗?


    IP属地:江苏2楼2008-04-28 02:10
    回复
      • 124.92.46.*
      顶一下..等高手来解答..


      3楼2008-04-28 14:51
      回复
        • 116.24.204.*
        2楼的问题我已经明白了..调试的时候看了一下
        数组是直接接受的数组的数据.所以可以没有下标.是整个接受过来的..
        但好象对于应用上好象还有些模糊
        我想可能还是练习做的少吧..我得再多做些练习.


        4楼2008-04-28 21:50
        回复
          • 58.241.84.*
          所谓参数就是要传到方法的值:
           void setData(int a) { }
          其中a 就是一个整型的参数,在别的地方调用这个方法时, setData(b) ,b作为参数传入,于是a = b 。
          当然,你所说的不用参数传递就如你写的那样,用一个全局的变量来作参,就是这样


          5楼2008-04-29 14:34
          回复
            谢谢提点..我现在稍微有一点明白了..


            IP属地:江苏6楼2008-04-29 19:34
            回复