세후 월급 출력 프로그램

에러는 없는데 ...
Exception in thread main java.lang.StackOverflowError at SalaryManager.init(SalaryManager.java:2) at SalaryManager.init(SalaryManager.java:6) at SalaryManager.init(SalaryManager.java:6) at SalaryManager.init(SalaryManager.java:6) at SalaryManager.init(SalaryManager.java:6) at SalaryManager.init(SalaryManager.java:6) at SalaryManager.init(SalaryManager.java:6) at SalaryManager.init(SalaryManager.java:6) at SalaryManager.init(SalaryManager.java:6) 이건 줄인거구요 at SalaryManager.init(SalaryManager.java:6) 이게엄청나게 많이 뜹니다.

이런게 뜹니다. 처음 겪는거라.. 넘쳐나서 공간부족 오류인듯 싶은데 어떻게 해줘야 하죠..
public class SalaryManager { double worktax,healthtax,nationaltax,totaltax; //근로소득세, 건강보험료, 국민연금, 총세금 int yearlySalary;//연봉 SalaryManager manager=new SalaryManager(); public double getMonthlySalary(int yearlySalary){ double monthlySalary; //월급 변수 monthlySalary=(yearlySalary/(double)12);//연봉 매개변수로 받으면 나누기 12 해서 월급게산 double worktax=manager.calculateTax(monthlySalary); //근로소득세 받아오기 double nationaltax=manager.calculateNationalPension(monthlySalary); //국민연금 받아오기 double healthtax=manager.calculateTaxHealth(monthlySalary); //건강보험료 받아오기 totaltax=worktax+nationaltax+healthtax; //총 세금 monthlySalary-=totaltax; //월급에서 세금빼기 return monthlySalary; //세후 월급 리턴 } public double calculateTax(double monthlySalary){ //근로소득세 계산 메소드 monthlySalary=manager.getMonthlySalary(yearlySalary); double tax = monthlySalary*0.125; //근로소득세 계산결과 System.out.println(근로소득세+tax);//결과 출력 이 부분은 출력메소드를 따로 만들어줘야 화면에 나타나겠죠? return (double)tax;//근로소득세 리턴 } public double calculateNationalPension(double monthlySalary){ monthlySalary=manager.getMonthlySalary(yearlySalary); double tax = monthlySalary*0.081;//국민연금 게산결과 System.out.println(국민연금+tax);//결과 출력 이 부분은 출력메소드를 따로 만들어줘야 화면에 나타나겠죠? return (double)tax;//국민연금 리턴 } public double calculateTaxHealth(double monthlySalary){ monthlySalary=manager.getMonthlySalary(yearlySalary); double tax = monthlySalary*0.135; //건강보험료 계산결과 System.out.println(건강보험료+tax); //결과 출력 이 부분은 출력메소드를 따로 만들어줘야 화면에 나타나겠죠? return (double)tax; //건강보험료 리턴 } public static void main(String[] args) { // TODO Auto-generated method stub double monthlyMoney; // 세후 월급변수 SalaryManager money=new SalaryManager(); monthlyMoney=money.getMonthlySalary(2000); //연봉 2000을 매개변수로 주고 세후 월급변수에 저장 SysspanSystem.out.println(세후 월급은 +monthlyMoney); //세후 월급 출력
}
}

프로그램 개발일반 다른 글

목록