如何在另一个方法中访问一个方法的参数?

时间:2019-01-10 17:10:58

标签: java jdeveloper

/ *   增薪计划 * /

import java.util.*;
class Increment
 {
Scanner sc = new Scanner(System.in);

 void getdata(String n, double d, int a)
 {
    System.out.print("Enter name of employee ");
    n = sc.nextLine();
    System.out.println("Enter current salary ");
    d = sc.nextDouble();
    System.out.println("Enter age");
    a = sc.nextInt();
 }

void calculate()
 {
    if(a>=56)
      {
        d = d+(20/100);
       }
    if(a>45&&a<56)
      {
        d = d+(15/100);
      }
    if(a<=45)
      {
        d = d+(10/100);
      }
 }

void display()
 {
    System.out.println("Name \t Age \t Basic ");
    System.out.print(n +"\t"+ d + "\t" + a);
 }

public static void main(String[] args)
{
    Increment i = new Increment();
    i.getdata();
    i.calculate();
    i.display();
    }
  }

如何在calculate()方法中使用n,d和a的值? 如果您发现其他任何错误,请帮助我!

3 个答案:

答案 0 :(得分:1)

您拥有Cells.Find(What:="SHOP TICKETS", After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate Set rng = Range(ActiveCell, ActiveCell.Offset(3, 0)) rng.EntireRow.Delete 返回信息(作为具有私有字段和获取器的对象(至少为它们)),然后将该对象传递给getdata和让calculate使用getter获取值。 (类似地,这就是您将信息从calculate获取到calculate的方式。)

您还可以在display中使它们成为字段,但这会使Increment处于有状态状态(在调用Increment之前,它没有必要的信息),通常最好避免这种情况

答案 1 :(得分:1)

在这种情况下,您需要具有实例变量,以便可以在方法中使用它们

class Increment
  {
String n; double d; int a;

    Scanner sc = new Scanner(System.in);

     void getdata()
     {
        System.out.print("Enter name of employee ");
        n = sc.nextLine();
        System.out.println("Enter current salary ");
        d = sc.nextDouble();
        System.out.println("Enter age");
        a = sc.nextInt();
     }

    void calculate()
     {
        if(a>=56)
          {
            d = d+(20/100);
           }
        if(a>45&&a<56)
          {
            d = d+(15/100);
          }
        if(a<=45)
          {
            d = d+(10/100);
          }
     }

    void display()
     {
        System.out.println("Name \t Age \t Basic ");
        System.out.print(n +"\t"+ d + "\t" + a);
     }

    public static void main(String[] args)
    {
        Increment i = new Increment();
        i.getdata();
        i.calculate();
        i.display();
        }

  }

答案 2 :(得分:0)

您必须声明正在使用的变量

String n;
double d;
int a;

主程序也将其放在另一个类中。 在“计算”方法中,使用开关