『 Maven 리포지토리에 없는 jar파일 추가 』

 

● /src/main/webapp/WEB-INF/lib/ 이하에 직접 추가

 


 

 

인터페이스의 특징

 

 

 

 

 

Ø 특징 및 주의 사항

 

l 인터페이스의 멤버들은 선언만 되며 구현되어서는 안된다.

 

l 인터페이스의 멤버들은 암묵적으로 public 제한자를 가진다.

 

l 인터페이스를 상속 받는 클래스들은 멤버들을 모두 구현해야 한다.

 

l 인터페이스와 파생클래스는 반환형이 일치해야 한다.

 

l 인터페이스에서 정의된 메소드가, 파생된 클래스에서 가상 메소드가 될수도 있고 아닐 수도 있다. 추상 메소드가 될 수도 있다.

 

l 추상 클래스가 인터페이스로부터 파생될 수 있다.

 

 

 

 

 

 

인터페이스(Interface)의 개념

 

 

 

 

 

Ø 인터페이스란?

 

l인터페이스(Interface)란 구현되지 않은 메소드들을 모아둔 프로그래밍 단위이다.

 

l프로퍼티, 인덱스, 이벤트 등도 멤버로 가질 수 있다.

 

l인터페이스를 두는 목적: 다중상속(Multiple Inheritance)의 일부 기능 지원

 

l추상클래스와 마찬가지로 인터페이스로 객체를 만들 수는 없다.

 

 

 

Ø 인터페이스의 이름은 대문자 I가 앞에 붙는다.

 

l) IFly

 

 

 

 

 

 

 

인터페이스와 다중상속

 

 

 

 

 

 

 

 

 

 

 

 



< Spring MVC 개발 >


* Spring MVC 처리 Flow


 

 


​* 파일 구성


 

 

 

​* 설정 파일 준비

(*) Pom.xml

 

- Web Library

- Logger Library

- Tag Library

- Spring Framework

- Json Library

- Maven 리포지토리에 없는 jar 파일 추가


(*) Web.xml


(*) 공통 Spring Bean 설정 파일


(*) Spring MVC 용 설정파일

 

 

 


앞의 예에 대한 해설

 

 

 

 

Ø 추상 메소드는 아래와 같이 정의 되었다.

  public abstract void FastRun();

l abstract 지시자를 명시한다.
l ;으로 마무리해 준다. {}을 사용하면 구현된 것으로 판단 에러가 발생하다.

 

 

Ø Boxter 클래스가 추상클래스 SportsCar를 상속받았는데, 추상메소드들을 구현해 주지 않았기 에러가 발생한다.

 

 

 

 

예제) 추상 메소드

 

 

 

 

 

using System;

abstract class SportsCar

{

  public abstract void FastRun();

}

class Boxter : SportsCar{}

class Program

{

  public static void Main()

  {

  Boxter a=new Boxter();

  a.FastRun();

  }

}

 

 

 

 

 

앞의 예에 대한 해설

 

 

 

 

Ø 추상 클래스 SportsCar는 추상클래스 Car를 상속받을 수있다.
Ø Car b=new Car(); 처럼 추상클래스로 직접 객체를 생성하는 것은 에러가 된다.
Ø Boxter 클래스는 일반 클래스이지만, 슈퍼클래스 SportsCar에서 추상메소드를 정의하지 않았기 때문에 아무런 구현이 없어도 에러가 발생하지 않는다.
Ø 페이지의 예에서 추상 메소드와 일반 메소드의 차이를 볼 수 있다.

 

 

 

 

 

 

+ Recent posts