괴발개발
[강의 정리] D24 JAVA - 추상화, 인터페이스 본문
1. override는
부모의 맘에 안드는 기능을 내 마음대로 바꿔 쓸 수 있는것
메서드의 이름이 같으면 오버라이드이다.
+ override는 final이 있는 것은 안됬다.
2. view에 값을 보낼려면
1. req.setA에 값 집어 넣고
2. index 내용을 req D req의 값을 붙히고
req로 부터 어디로 보낼지 지정한다(index로)
3. 디스패쳐로 부터 포워드로 보내는데 보낼 req, resp를 묶어서 보낸다.
* 디스패처란 뜻은 req과 resp의 값을 붙힌다는것!
응답할땐 레스펀스인데 , 값은 리퀘스트만 담을 수 잇으니까
레스펀스에 리퀘스트를 붙여서 보내는것임
3. 추상클래스
추상화는 규격이고
추상 클래스 라는것은
공통적으로 사용하는 것들을 모아놓은 클래스임
1. abstract가 붙고
2. 상속받는다면 강제 오버라이드해야한다.
3. 자식만 객체화 할 수 있다.
추상 매서드는
1. 형태만 있고, 몸체가 없는 메서드 이다.
2. 강제로 override 해야 할 경우 설정 해 준다.
(무조건 만들어야 하는 애)
3. * abstract 키워드를 넣어야 한다.
+갤럼 : << >>
4.
하나의 클래스에서 여러 요청을 받을 수 있다.
feat. WebServlet
[ 직업 아는 방법]
WebServlet에
urlPatterns 하고
${array} 넣고
/ 넣고 (위치니까)
@WebServlet(urlPatterns = {"/use","/skill","/jump"})
+ 어떤 스킬인지 알 수 있음? [짤라내야함]
1. 전체 주소를 가져온다
2. 이 주소에서 컨텍스트 경로를 빼준다.(컨텍스트 경로에서 랭스 만큼 빼준다.)
//1. 전체 주소를 가져온다.
String uri = req.getRequestURI();
System.out.println(uri);///04_absClass/use
//2. 이 주소에서 컨텍스트 경로를 빼준다.(앞에 잇는거) **그러면 남은 /use만 남겠지
String ctx = req.getContextPath();// 너 몇자야 하고 빼내고
System.out.println(ctx);
String addr = uri.substring(ctx.length());// 서브스트링을 어디서 부터 보여줄꺼냐 . 하면 그 빼낸 몇자에서부터(그 인덱스) 부터 보여준다.
System.out.println("uri - ctx =" + addr);// /use
String result = "";// 그냥 하면 null나오니까
switch (job) {
case "탱커":
//StandardModel model = new St
Tanker tanker = new Tanker();
if (addr.equals("/skill")) {
result = tanker.skill(job);
}else if(addr.equals("/use")) {
result = tanker.useItem(job);
}else {
result = tanker.jump(job);
}
break;
case "딜러":
Dealer dealer = new Dealer();
if (addr.equals("/skill")) {
result = dealer.skill(job);
}else if(addr.equals("/use")) {
result = dealer.useItem(job);
}else {
result = dealer.jump(job);
}
break;
case "힐러":
Healer healer = new Healer();
if (addr.equals("/skill")) {
result = healer.skill(job);
}else if(addr.equals("/use")) {
result = healer.useItem(job);
}else {
result = healer.jump(job);
}
break;
}
System.out.println("result : "+result);
req.setAttribute("result", result);
RequestDispatcher dis = req.getRequestDispatcher("index.jsp");
dis.forward(req, resp);
}
5. interface
기본적으로 규격의 의미가 강하다
implement : 구현<-> c
인터페이스 | 추상화 |
implement : 구현 | abstract |
- interface는 객체화 되지 않는다.()
- 추상메서드에 abstract가 붙지 않는다.(이것 밖에 없으니까)
- 껍대기를 실체화 시키는 거니까 구현이라고 부른다.
+일반메서드 사용하려면 default 붙이면 된다. jdk 1.8 버전 부터 가능
'BACK END > JAVA' 카테고리의 다른 글
[질문] extends와 implement (0) | 2023.02.25 |
---|---|
[퀴즈 정리]D24 JAVA - override, interface (0) | 2023.02.24 |
[퀴즈 정리]D17 JAVA#3 (0) | 2023.02.18 |
[강의 정리]D16 JAVA#2 (0) | 2023.02.16 |
[퀴즈 정리]D16 JAVA#2 (0) | 2023.02.16 |