카테고리 없음

230106

Berylly 2023. 1. 6. 18:10

T. 김동식

 

eclipse

Ctrl shift O import 단축키

 

system.in.read()

콘솔 키보드 입력받기, system.out.print()와 반대

 

 

extends & implements

class, interface 모두 부모자식관계를 맺을 수 있다.

한 클래스가 여러 인터페이스를 구현 할 수 있다.

public class G implements D, E, F{}
public class G extends A implements D{}

 

 

interface

interface는 원래 메서드가 구현될 수 없지만

추상/디폴트/정적/프라이빗 메서드는 가능하다.

abstract void a();
default void a(){}
static void a(){}
private void a(){}// default 함수에 a();로 추가해 호출할 수 있다.
static private void a(){} //static 함수에 a();로 추가해 호출할 수 있다.

 

 

 

interface & implements

Scheduler는 interface, 객체생성이 되지않는다.

초기화 후, 하위 implements class 로 생성한다.

Scheduler s = null
if(ch =='r' || ch =='R'){
s = new RoundRobin();
}

 

 

form method

post 개인정보가 노출되지않게함

form action="login" method="get"
form action="login" method="post"

 

 

브라우저에서 입력한 값 받아 띄우기

ㅍString identy = request.getParameter("id(name 값)");
String pass = request.getParameter("pw(name 값)");

변수로 입력값을 받아 

 

response.setContentType("text/html;charset=utf-8");
PrintWriter pw = response.getWriter();
pw.print(pass+"<br>"+identy)

출력한다.

 

 

 

환율계산기

// class에 변수선언
private static final float USD_RATE = 0.6f;
private static final float JPY_RATE = 0.6f;
private static final float CNY_RATE = 0.6f;
private static final float GBP_RATE = 0.6f;
private static final float EUR_RATE = 0.6f;
//doget에 변수선언, won(금액 input name)과 operator(환율선택 select name)
String command = request.getParameter("command");
String won = request.getParameter("won");
String operator = request.getParameter("operator");

//HTML 구현
request.setCharacterEncoding("utf-8");
		response.setContentType("text/html; charset=utf-8");
		PrintWriter pw = response.getWriter();
        pw.print("<html><title>환율 계산기</title>");
		pw.print("<font size=5>환율 계산기</font><br>");
		pw.print("<form name='frmCalc' method='get' action='/pro06/calc'	/>");
		pw.print("원화: <input type='text' name='won' size=10		/>");
		pw.print("<select name='operator'	>");
		pw.print("<option value='dollar'>달러</option>");
		pw.print("<option value='en'>엔화</option>");
		pw.print("<option value='wian'>위안</option>");
		pw.print("<option value='pound'>파운드</option>");
		pw.print("<option value='euro'>유로</option>");
		pw.print("</select>");
		pw.print("<input type='hidden' name='command' value='calculate'	/>");
		pw.print("<input type='submit' value='변환'	/>");
		pw.print("</form>");
		pw.print("</html>");
		pw.close();

 

// 결과 출력할 폼 지정
if(command != null && command.equals("calculate")) {
			String result = null//초기화
            
            //예외처리
            //try는 예외를 감지, catch는 예외 처리
            try{
            //Float.parseFloat String을 float로 변환
             result = calculate(Float.parseFloat(won), operator); 
            }catch(Exception e1){
            system.out.print("값안넣었음")
            }
            
            
			pw.print("<html><font size=10>변환결과</font><br>");
			pw.print("<html><font size=10>" + result + "</font><br>");
			pw.print("<a href='/pro06/calc'>환율 계산기</a>");
			return;
		}

 

// 환율계산하는 함수
private static String calculate(float won, String operator) {
		
		String result =null; //초기화
        
        //equals()
        //equals 메소드는 비교하고자 하는 대상의 내용 자체를 비교하지만,
		//== 연산자는 비교하고자 하는 대상의 주소값을 비교합니다.
		if(operator.equals("dollar")) {
			result = String.format("%f", won / USD_RATE); //문자열 형식 %f (실수형 형식)
		}else if(operator.equals("en")) {
			result = String.format("%f", won / JPY_RATE);
		}else if(operator.equals("wian")) {
			result = String.format("%f", won / CNY_RATE);
		}else if(operator.equals("pound")) {
			result = String.format("%f", won / GBP_RATE);
		}else if(operator.equals("euro")) {
			result = String.format("%f", won / EUR_RATE);
		}
		return result;
	}