+ 패키지, 예외처리, MVC

조영혜·2022년 1월 20일
1

패키지

클래스 작성 시 해당 클래스가 어떤 패키지에 속할 것인지를 선언

  • import
    사용하고자 하느 클래스 또는 인터페이스가 다른 패키지에 소속된 경우.
    해당 패키지 클래스 또는 인터페이스를 가져와 사용할 것임을 컴파일러에게 통보.
    패키지 선언과 클래스 선언 사이에 작성.
    하위 패키지는 별도로 import해야함.
    다른 패키지에 동일한 이름의 클래스가 있을 경우 import와 상관없이 클래스 전체 이름 기술해야함.

접근제한자

public : 외부 클래스가 자유롭게 사용할 수 있도록 함.
protected : 같은 패키지 또는 자식 클래스에서 사용할 수 있도록 함.
private : 외부에서 사용할 수 없도록 함.
defalut : 같은 패키지에 소속된 클래스에서만 사용할 수 있도록 함.

Getter / Setter

외부에서 객체에 마음대로 접근할 경우 객체의 무결성 깨질 수 있음.

  • Setter
    : 외부의 값을 받아 필드의 값을 변경하는 것이 목적.
    매개값 검증하여 유효한 값만 필드로 저장할 수 있음.
  • Getter
    : 외부로 필드값을 전달하는 것이 목적.
    필드값을 가공해서 외부로 전달할 수도 있음.

예외처리

프로그램의 갑작스러운 종료를 막고 정상실행을 유지할 수 있다.

try-catch-finally

생성자 및 메소드 내부에서 작성되어 일반예외와 실행예외가 발생할 경우 예외처리 가능하게 함.

//정살실행 
try{
예외발생가능코드 ->finally로 넘어감 
}{catch(예외클래스 e){
예외처리
}{finally{
항상 실행;
}

//예외발생
try{
예외발생!-> 캐치로 넘어감 
}{catch(예외클래스 e){
예외처리
}{finally{
항상 실행;
}

finally는 예외처리 발생 유무 상관없이 최종 실행!

  • e.printStackTrace(); : 개발진행중일 때 어디서, 왜 오류가 났는지 말해줌.
    개발 끝났을 땐 주석처리해주고 출력문으로 고쳐주는 게 좋음. ex)system.out.println("다시 입력해주세요");

다중 catch

: 발생하는 예외별로 예외처리코드를 다르게 하는 다중 catch블록
: 하나의 트라이문으로 다수의 예외처리 가능!

  • (Exception e) : 트라이문에서 어떤 예외가 발생하든 상관없이 모든 예외는 Exception을 상속받기 때문에 전부 예외처리 됨!

특별한 예외만 처리하고 싶을 땐 catch문에 오류코드 넣어주면 되고 모든 예외 처리하고 싶을 땐 (Exception e) 쓰기.

  • throws
    : 메소드를 처리하지 않은 예외를 호출한 곳으로 넘기는 역할
    메소드를 호출한 곳에서 다양한 방식으로 처리할 수 있도록 함
    thorws 키워드 뒤에는 떠넘길 예외 클래스를 쉼표로 구분하여 나열.
    try~catch문 쓰기 귀찮은 테스트나, 공부할때 많이 쓰임.

MVC

유지보수가 편해지는 코드방식

모델 : 데이터
뷰 : 유저에게 보이는 곳 담당
컨트롤러 : 뷰와 모델의 중개자

모델 내부에 컨트롤러와 뷰에 관련 코드 있으면 안됨!
뷰는 모델에만 의존해야 하고 컨트롤러에 의존하지 말자!
뷰가 모델로부터 데이터 받을 때, 사용자마다 다르게 보여주저야 하는 데이터에 대해서만 받자!
컨트롤러에는 모델과 뷰에 의존해도됨!
뷰가 모델로부터 데이터를 받을 때 꼭 컨트롤러에서 받자!

0개의 댓글