Error Duplicate local variable member - member 변수 중복 선언
08_java기초_서로다른클래스_리턴O_parameter갯수O_메서드분리 과정에서 나온 에러 입니다.
이미 작성 해놓았던 하나의 클래스 내에서 리턴과 parameter 갯수가 있는 자바 코드를 여러클래스로 나누는 과정에서 에러가 나왔습니다.
아래는 작성 해 놓았던 자바 연습파일 입니다.
/*-/*-/*-/*-/사용된 코드 /*-/*-/*-/*-/*-/ package kr.or.ksmart.A; public class AA { public static void main(String[] args) { //---------------------DB------------------------// //DB에 저장되어 있는 내용//구매자의 회원 정보를 DB에서 가져온다. String input_member_db = "00";//DB 內 아이디 int input_no_db = 100;//DB 內 구매횟수 int input_money_db = 1000000000;//DB 內 누적 구매금액 //DB에 저장되어 있는 내용--관리자가 정해놓은 관리정보를 DB에서 가져온다. double input_savepointdb = 1.8;//관리자가 정해놓은 기본 적립률 double input_dispointdb = 1.4;//관리자가 정해놓은 기본 할인율 //*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- //회원여부확인 Method 호출 String member = member(input_member_db); System.out.println(input_member_db+"님은 "+member+"입니다. "); //단골여부확인 Method 호출 String dan = dangol(member, input_no_db); System.out.println("구입횟수는"+input_no_db+"번이고 등급은 "+dan+"입니다. "); //구입금액별회원레벨확인 Method 호출 String le = level(dan, input_money_db); System.out.println("구입금액은 "+input_money_db+"이고 "+le+"회원 입니다. "); //회원레벨별 적립률확인 Method 호출 double sa = save(le, input_savepointdb); System.out.println("설정적립률은"+input_savepointdb+"% 이고 실제 적립률은 "+sa+"% 입니다. "); //회원레벨별 할인율확인 Method 호출 double dis = discount(le, input_dispointdb); System.out.println("설정할인율은"+input_dispointdb+"% 이고 실제 할인율은 "+dis+"% 입니다. "); //프로그램 화면에 보여질 내용// moniter(member, input_member_db, dan, le, sa,dis,input_no_db,input_money_db); //실제 화면에 출력하고 싶은 내용 /* System.out.println(""); System.out.println(""); System.out.println("/*-/*-/*-/프로그램 화면에 보여질 정보/*-/*-/*-/"); System.out.println("*-/ "+input_member_db+"님은 "+dan+le+"회원 " + "입니다. "); System.out.println("*-/ "+ "적립률은 "+sa+" |할인율은" +dis); */ } //회원여부확인 Method 선언 public static String member(String id){ System.out.println("STEP One_회원/비회원 체크"); String memid; if(id != ""){ memid="회원"; }else { memid="비회원"; } return memid; } //단골여부확인 Method 선언 (단골일때 ★ 비단골일때 ☆의 특수 문자를 부여) //단골 조건 (5회이상 구입시 단골 그이하는 비단골) public static String dangol(String member,int count){ System.out.println("STEP Two_단골여부 체크"); String dan; if(member == "회원" && count >= 5){ dan="★"; }else if(member == "회원" && count <4){ dan="☆"; }else{ dan="☆"; } return dan; } //구입금액별회원레벨확인 Method 선언(비단골=일반회원, 단골=브론즈, 실버, 골드, 다이아) public static String level(String dan,int price){ System.out.println("STEP Three_구입금액체크"); String pri = "일반"; if(dan == "★" && price < 1000000){ pri="브론즈"; }else if(dan == "★" && price >= 1000000){ pri="실버"; }else if(dan == "★" && price >= 5000000){ pri="골드"; }else if(dan == "★" && price > 10000000){ pri="다이아 "; } return pri; } //회원레벨별 적립률확인 Method 선언 public static double save(String le, double savepoint){ System.out.println("STEP Four_적립률 책정"); double saveper = 0; if(le == "다이아"){ saveper=2.0*savepoint; }else if(le == "골드"){ saveper=1.7*savepoint; }else if(le == "실버"){ saveper= 1.2* savepoint; }else if(le == "브론즈"){ saveper=1.0*savepoint; }else{ saveper= 0; } return saveper; } //회원레벨별 할인율확인 Method 선언 public static double discount(String le, double dispoint){ System.out.println("STEP Five_할인률책정"); double disper = 0; if(le == "다이아"){ disper=4.0*dispoint; }else if(le == "골드"){ disper=3.0*dispoint; }else if(le == "실버"){ disper= 2.0* dispoint; }else if(le == "브론즈"){ disper=1.0*dispoint; }else{ disper= 0; } return disper; } //회원화면과 비회원 화면의 구성 public static void moniter(String mem, String input_member_db, String dan, String le, double sa, double dis,int no, int pri){ if(mem == "회원"){ //회원화면에 출력하고 싶은 내용 System.out.println(""); System.out.println(""); System.out.println("/*-/*-/*-/프로그램 화면에 보여질 정보/*-/*-/*-/"); System.out.println("/*-/ "+input_member_db+"님은 "+dan+le+"회원 " + "입니다. /*-/"); System.out.println("/*-/ " + "구매횟수 :"+no+"%|누적구매금액 :"+pri+"%/*-/"); System.out.println("/*-/ " + "적립률 : "+sa+"% | 할인율 : " +dis+"% /*-/"); System.out.println("/*-/*-/*-/*-/*-/*-/*-/*-/*-/*-/*-/*-/*-/*-/"); }else{//비회원화면에 출력하고 싶은 내용 System.out.println(""); System.out.println(""); System.out.println("/*-/*-/*-/프로그램 화면에 보여질 정보/*-/*-/*-/"); System.out.println("/*-/ 당신은 "+mem+ "입니다. /*-/"); System.out.println("/*-/ " + "적립률 : "+sa+"% | 할인율 : " +dis+"% /*-/"); System.out.println("/*-/ 회원 가입하시면 더많은 혜택을 드립니다. /*-/"); System.out.println("/*-/ 회원 가입페이지로 이동하시겠습니까? /*-/"); System.out.println("/*-/*-/*-/*-/*-/*-/*-/*-/*-/*-/*-/*-/*-/*-/"); } } } |
위의 메소드 별 클래스로 나누는 작업을 하는 중 아래와 같은 에러메시지가 나왔습니다.
/*-/*-/Error 내용/*-/*-/*-/ Multiple markers at this line - The method member(String) is undefined for the type String - Duplicate local variable member |
- member 변수 중복에 관한 내용입니다. 붉은 색 member자리에 중복된 다른 변수명이 올수 있으니 참고하시기 바랍니다.
★★★★ Duplicate local variable 0000 는 0000변수의 현페이지 내 중복을 알리는 Error
해결 방법은 두개의 member 변수중 한개를 다른 변수명으로 바꿔주면 간단합니다.
저의 경우 위에 있는 10번라인의 변수member을 member_out로 바꿔주었습니다.
간단히 해결할수 있는 에러 였네요~..
오늘도 웹공부중인 조조나리 였습니다.
댓글