JAVA interface & 예외처리

오늘은 interface와 예외처리에 대해서 공부했습니다.

공부한 내용으로 세미나 발표를 했는데 용어나 이론적 내용부분에 대한 공부가 부족해서 지적받았습니다;; 그래서 먼저 지적 받았던 부분의 용어에 대해 간단히 열거해보는 걸로 시작하겠습니다.

객체지향 프로그래밍
객체를 중심으로 프로그래밍 하는 것. 좀 더 나은 프로그램을 만들기 위한 프로그래밍 기법으로 대상을 상태와 행위로 이루어진 객체로 만드는 것입니다.

다형성
어떤 한 요소에 여러 개념을 넣어 놓는 것으로 하나의 변수명, 함수명 등이 상황에 따라 다른 의미로 해석될 수 있는 것을 말합니다.
다형 개념을 통해서 프로그램 안의 객체 간의 관계를 조직적으로 나타낼 수 있다. 오버로딩, 오버라이딩도 여기에 해당합니다.

오버로딩 : 같은 이름의 메소드를 여러개 가지며 각각의 파라미터가 다릅니다.(ex : 생성자)
오버라이딩 : 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의하여 사용하며 메소드의 내용만 변할 뿐 파라미터가 변하지 않습니다.

-추가-

HTML : 웹페이지를 위한 마크업 언어. 텍스트, 이미지, 동영상 등과 같은 웹에 사용되는 컨텐츠를 만들 때 사용합니다.
CSS : HTML이나 XML로 쓰인 문서의 표현을 기술하기 위해 사용되는 스타일스트 언어로 웹을 꾸며주고 문서 전체가 일관성을 유지하는 데 사용합니다.
JavaScript : 동적이고 상호대화적인 웹페이지를 만들 때 사용하는 스크립트 언어(응용 소프트웨어를 제어하는 프로그래밍 언어)


인터페이스(Interface)는 일종의 추상 클래스로 인터페이스 안에서의 변수는 public static final로, 메소드는 public abstract로 지정되며 인터페이스 구현 시 해당 인터페이스의 메소드를 모두 구현해야 합니다.

인터페이스안의 메소드는 원형만 존재하고 몸체는 없기 때문에 인터페이스를 구현한 클래스마다 오버라이딩을 합니다. 그러므로 하나의 메소드가 각각 다른 형태를 가질 수 있는 특징을 가지고 있어 객체 지향에서의 다형성의 모습을 보여줍니다.

간단하게 학점 관리 프로그램을 만들어 인터페이스와 예외처리를 추가해보았습니다. 인터페이스 클래스에 학점입력, 학생검색, 학점출력의 메소드를 추가하였습니다. (만들고보니 인터페이스용 예제로는 깔끔하지 않은 것 같지만…)

예외처리 클래스는 해당 학생이 존재하지 않을 때의 예외로 정의하였습니다.

학과학생의 데이터를 관리하는 StudentStorage 클래스가 위의 StudentInfo 인터페이스를 구현하였습니다. 인터페이스를 구현했을시에는 해당 인터페이스의 메소드를 모두 구현해야하므로 각각의 메소드를 오버라이딩 하였습니다. editScore 메소드와 printScore 메소드에서는 try~catch를 이용하여 예외가 없을 시에는 그대로 실행하고 예외발생시에는(여기선 학생존재여부 예외만 존재합니다.) catch문에서 예외를 처리 하였습니다. search 메소드에서 학생이 존재하지 않을 시의 예외를 던지는 throws를 넣어 예외를 전달하였습니다.

눈과 손에 익지 않았다보니 제가 짠 코드인데도 어색하네요. 아직은 예외처리 방법보다는 if문이 편하더군요ㅎㅎ