본문 바로가기

분류 전체보기48

[Java] 추상화 (feat. 추상 클래스) 추상화란? 기존 클래스의 공통부분을 뽑아 부모 클래스를 만드는 것을 의미한다. 상속 계층을 보면 내려갈수록 구체화되어 있고, 올라갈수록 추상화되어있다. 다시 말하자면, 내려갈수록 세분화되어 있고, 올라갈수록 공통요소만 남는다. 자바에서 추상화의 예로 추상 클래스, 추상 메서드, 인터페이스를 들 수 있다. 추상 클래스? : 추상 메서드를 가지고 있는 클래스. 미완성 설계도. 미완성이기 때문에 인스턴스를 생성할 수 없다. 추상 메서드? 선언부만 있고, 구현부는 없는 메서드. 미완성 메서드 자식 클래스에서 오버라이딩을 통해 구현부를 완성시켜야한다. class Marine{ int x, y; void move(int x, int y){...} void stop(){...} void stimPack(){...} .. 2022. 10. 15.
[Java] 다형성 다형성이란? 여러 형태의 데이터를 가질 수 있는 능력. 자바에서 다형성을 잘 나타낸 것은 부모 클래스 타입의 참조변수가 자식 클래스 타입의 인스턴스를 참조할 수 있다는 것이다. class Tv{ boolean power; int channel; void power(){power= !power;} void channelUp(){++channel;} void channelDown(){--channel;} void method(){...} } class SmartTv extends Tv{ String text; void caption(){...} void method(){...}// 오버라이드 } 다음과 같이 SmartTv 클래스는 Tv 클래스를 상속받았다. Tv t1 = new SmartTv(); Smart.. 2022. 10. 13.
[Java] 캡슐화 캡슐화란 쉽게 말해 데이터 감추기이다. 즉 외부로부터 접근을 막는 것을 의미한다. 자바에서는 접근 제어자를 통해 캡슐화를 한다. 접근 제어자의 종류 private : 클래스 내에서만 접근 가능 (default) : 같은 패키지 내에서만 접근 가능 protected : 같은 패키지, 자손클래스에서 접근 가능 public : 제한 없음 접근 제어자를 사용하는 이유 외부로부터 접근을 막기위해 외부에서는 접근하지 않고, 내부에서만 쓰이는 부분은 감추기 위해 접근 제어자를 사용함으로써 클래스 내부의 데이터를 보호할 수 있다. 멤버변수를 private으로 하여 외부로부터 접근을 막는다. 대신 멤버변수의 값을 읽는 getter와 멤버변수의 값을 변경하는 setter를 public으로 작성하여 간접적으로 멤버변수에 접.. 2022. 10. 11.
[Java] 인터페이스 인터페이스는 추상메서드의 집합이다. 인터페이스는 다음과 같은 특징을 가지고 있다. 인터페이스의 멤버변수는 public static final 이며, 생략할 수 있다. 인터페이스의 메서드는 public abstract 이며, 생략할 수 있다. (단, static 메서드와 디폴트 메서드는 예외) 인터페이스의 상속 인터페이스의 조상은 인터페이스만 가능하다. 다중 상속이 가능하다. 자바에서 클래스의 다중 상속이 안되는 이유는 부모 메서드의 충돌 문제 때문인데, 인터페이스는 메서드의 선언부만 있기때문에 다중 상속시 충돌 문제가 발생하지 않는다. 인터페이스의 구현 인터페이스의 추상 메서드를 완성을 해야 사용이 가능하다. 즉, 인터페이스는 그 자체로 인스턴스를 생성할 수 없고, 인터페이스를 구현한 클래스를 선언 후 .. 2022. 9. 24.
[도파민 프로젝트] 개발일지 220821 [오늘 할 일] 1. 시나리오 작성 후 오늘 만들 기능 정하기 2. 로그인 기능 완료 - 예외처리 [오늘의 공부] 1. 스프링의 정석 - ch4 기능 하나 정해서 듣기- 져녁 자기전! 2. 데이터 모델링 - ER모델 Cardinality와 Optionality [오늘 한 일 & 알게 된 것] 로그인 구현 "아이디를 입력해주세요, 비밀번호를 입력해주세요." 이 메세지는 js로 처리하고, idpwdCheck만 서버로 통신하도록 했다. 로그인 실패 시, 기존 입력한 id가 여전히 뷰에 보이도록 Model을 통해서 보여주기 예외 처리 존재하지 않는 아이디를 입력하면, userDao.selectUserPwd에서 null이 반환되는데 여기서 예외를 어떻게 발생시킬지 고민이 있다. NullPointerExceptio.. 2022. 8. 21.
[도파민 프로젝트] 220820 개발일지 [오늘의 공부] 1. 자바의 정석 - 객체 지향 6장 복습 2. 데이터 모델링 - 20m, ER모델 Cardinality와 Optionality [오늘 한 일 & 알게 된 것] 1. 회원가입 - 아이디 중복 체크 메서드 만들기 이해가 안가는 부분. @Valid 붙은 객체만 Validator로 검사하는게 아닌가? 왜 @Valid 안붙인 요청값도 Validator를 거칠까? >> 디버깅을 해본 결과, 컨트롤러에 들어오는 모든 요청값들은 Validator의 supports 메서드를 거치고, @Valid를 붙인 객체만 validate 메서드를 거치는 것이었다. 이론으로 배웠을 때는 이 개념이 헷갈렸는데 디버깅을 해보니 개념이 확실히 와닿았다. 2. 회원가입 - 회원가입 완료 시 jsp 반환하기 회원가입 완료하면.. 2022. 8. 20.