Как получить доступ к аргументам одного метода в другом методе? - PullRequest
0 голосов
/ 10 января 2019

/ * Программа повышения заработной платы * /

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();
    }
  }

Как я могу использовать значения n, d и a в методе Calculate ()? Пожалуйста, помогите мне, если вы найдете любую другую ошибку!

Ответы [ 3 ]

0 голосов
/ 10 января 2019

В этом случае вам нужно иметь переменные экземпляра, чтобы вы могли использовать их в методах

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();
        }

  }
0 голосов
/ 10 января 2019

Вы должны объявить переменные, которые вы используете

String n;
double d;
int a;

Также основной положить его в другой класс. В методе «Рассчитать» используйте переключатель

0 голосов
/ 10 января 2019

У вас есть getdata , которые возвращают информацию (как объект с закрытыми полями и получателями [по крайней мере] для них), а затем вы передаете этот объект в calculate и используете calculate геттеры, чтобы получить значения. (Точно так же вы можете получить информацию из calculate в display.)

Вы также можете сделать их полями в Increment, но это делает Increment с состоянием (до вызова getdata, у него нет необходимой информации), чего обычно лучше избегать.

...