/ * 增薪计划 * /
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的值? 如果您发现其他任何错误,请帮助我!
答案 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;
主程序也将其放在另一个类中。 在“计算”方法中,使用开关