분류 전체보기
-
구조패턴 > 어댑터 *기타/디자인패턴 2021. 2. 11. 10:09
다른 인터페이스로 변환, 호환성 한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 변환한다. 어댑터를 이용하면 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 사용할 수 있다. * mp3 (MediaPlayer)는 play 를, 새로 나온 mp4(MediaPackage)는 playFile 메서드를 각각 가지고 있는데 mp4가 mp3 의 play 를 사용할 수 있도록 하려면? mp3 를 상속하는 adapter 객체를 만들고 adapter 가 mp4를 구성요소로 가지게 한다. adapter 의 play 를 호출할 때 mp4의 playfile 이 호출되도록 한다. 이전에 사용하던 play에 변화를 주지 않고 새로 나온 mp4의 기능을 호출할 수 있다. public c..
-
EnumBackEnd/자바 2021. 1. 31. 09:38
Enum 은 열거형(enumerated type)이라고 부른다. 열거형은 서로 연관된 상수들의 집합이라고 할 수 있다. Enum 은 class 선언 자리에 enum 을 대신 넣어 아래와 같이 만들 수 있다. public enum Fruits { APPLE,PEACH,BANANA; private Fruits(){ System.out.println("Fruits constructor"); } } Enum 생성자는 private 으로만 선언할 수 있으며, 변수를 선언한 만큼 생성자가 돌아가 아래와 같은 결과가 나온다. public class Test { public static void main(String[] args) { Fruits type = Fruits.APPLE; } } ---------------..
-
예외처리BackEnd/자바 2021. 1. 16. 12:20
오류와 예외 오류(Error) 시스템레벨에서 발생하는 에러로, 컴퓨터 하드웨어의 오동작 또는 고장으로 인한 이상이나 JVM 실행에 문제가 생겼을 경우에 발생한다. 개발자가 미리 예측할 수 없기 때문에 오류에 대한 처리는 하지 않는다. 예외(Exception) 사용자의 잘못된 조작이나 개발자의 잘못된 코딩으로 발생하는 프로그램 오류이다. 예외가 발생하면 프로그램이 종료되는 것을 오류와 동일하지만 예외처리를 통해 프로그램이 정상적으로 작동하게 할 수 있다. 예외 계층 구조 Exception 에는 Checked 와 UnChecked Exception 이 있다. 모든 클래스는 Exception 클래스를 상속받는데, Exception 클래스 자체는 checked exception 이다. Checked Except..
-
Servlet & 스프링 web.xml 설정 (쉽게 따라하는 자바 웹개발 (백기선))BackEnd/스프링 2021. 1. 14. 21:04
https://coding-factory.tistory.com/742 [Web] 서블릿(Servlet)이란 무엇인가? 서블릿 총정리 서블릿(Servlet)이란? 서블릿이란 Dynamic Web Page를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술입니다. 웹을 만들때는 다양한 요청(Request)과 응답(Response)이 있기 마련이고 이 coding-factory.tistory.com JSP 프로그래밍 방식 요청받은 파일을 그대로 반환한다. web.xml index.html index.htm index.jsp default.html default.htm default.jsp 서블릿 & JSP 프로그래밍 방식 서블릿 클래스를 등록하고 관련 매핑 정보를 기재한다. 다른 기능을 추가하기 ..
-
인터페이스BackEnd/자바 2021. 1. 9. 12:14
class는 인터페이스를 implments 키워드를 통해 상속받을 수 있다. 하지만 인터페이스가 인터페이스를 상속할 땐 class 끼리 상속하는 것과 동일하게 extends 를 사용한다. - 모든 멤버변수는 public static final 이어야 하며, 이를 생략할 수 있다. - 모든 메서드는 public abstract 이어야 하며, 이를 생략할 수 있다. - 인터페이스는 객체의 타입으로만 사용된다. - 인터페이스에는 추상 메소드만 존재한다. 자바8부터 default, static 으로 method 구현 가능 - 인터페이스의 상수는 private으로 만들 수 없다 자바 9 부터 private method, private static method 가능 interface 안에서 default 와 sta..
-
자바 기초 (패키지, import , classpath, 접근제어자)BackEnd/자바 2021. 1. 1. 14:57
패키지 서로 관련 있는 클래스 또는 인터페이스들을 묶어 놓은 묶음이다. 패키지를 사용해 클래스들이 필요할 때만 사용될 수 있도록 하고, 클래스와 함께 계층적 형태로 사용함으로써 다른 그룹에 속한 클래스들과 충돌을 방지하고 관리를 편하게 한다. 도메인명을 거꾸로 하는 방법을 많이 사용한다. tistory.com - > 패키지명 : com.tistory.seung (seung 은 프로젝트명) import java.lang 을 제외한 다른 패키지의 클래스를 이용하고자 할 때 클래스명 앞에 패키지를 명시하여 사용하는데, 이를 import 를 통해 생략할 수 있다. 파일 상단에 import 패키지명을 쓴다. 또 다른 패키지의 static 메서드를 import static 을 통해 사용할 수 있다. (import ..
-
중첩클래스의 쓰임 > 이펙티브 자바 아이템 24BackEnd/자바 2020. 12. 26. 13:25
중첩클래스에는 정적 멤버 클래스, 비정적 멤버 클래스,익명클래스,지역클래스 네가지이다. 첫번째를 제외한 나머지는 내부클래스에 해당한다. 비정적 멤버 클래스의 인스턴스는 바깐 클래스의 인스턴스와 암묵적으로 연결된다. 그래서 비정적 멤버 클래스의 인스턴스 메서드에서 정규화된 this 를 사용해 바깥 인스턴스의 메서드를 호출하거나 바깥 인스턴스의 참조를 가져올 수 있다. 정규화된 this ? 클래스명.this 바깥클래스의 이름을 명시하는 용법 바깥 클래스로의 숨은 외부 참조를 갖는 것은 시간과 공간이 소비되고, GC가 바깥클래스의 인스턴스를 수거하지 못해 메모리 누수가 생길 수 있다. 비정적 멤버 클래스는 바깥 인스턴스 없이는 생성할 수 없다. 드물게 직접 바깥 인스턴스 클래스.new 내부클래스를 호출해 수동..
-
상속 , dynamic dispatchBackEnd/자바 2020. 12. 26. 10:46
※ 상속 상속 : 상위클래스의 변수, 메서드들을 하위 클래스가 물려받는 것 이미 존재하는 클래스를 기반으로 새로운 클래스를 작성하며 코드를 재사용할 수 있고, 같은 메서드라도 각 하위 클래스에서 재정의(Overriding) 해 객체 지향에 중요한 부분인 다형성을 구현한다. extends 키워드를 통해 클래스를 상속할 수 있으며, 복잡성을 줄이고 코드의 간결함을 위해 단일 상속만 가능하다. //single class Animal{ void eat(){System.out.println("eating..."); } } class Dog extends Animal{ void bark(){ System.out.println("barking...");} } //Multi Level class Animal{ void..