괴발개발

[강의 정리] D24 JAVA - 추상화, 인터페이스 본문

BACK END/JAVA

[강의 정리] D24 JAVA - 추상화, 인터페이스

dinoelll 2023. 2. 24. 16:50
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

 

  1. interface는 객체화 되지 않는다.()
  2. 추상메서드에 abstract가 붙지 않는다.(이것 밖에 없으니까)
  3.  껍대기를 실체화 시키는 거니까 구현이라고 부른다.

+일반메서드 사용하려면 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
Comments