일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 재택근무
- 직장인자기계발
- javabasic
- 국비
- 자바기본
- 데이터베이스
- 자바
- 스프링
- DB
- 패스트캠퍼스
- java
- String
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- linux
- 자바연습문제
- 자바예제
- DesignPattern
- ncs
- 직장인인강
- java기초
- 자바기초
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 웹
- 디자인
- 패캠챌린지
- Spring
- 리눅스
- 디자인패턴
- 패스트캠퍼스후기
- js
- Today
- Total
목록한번에끝내는JavaSpring웹개발마스터초격차패키지Online (31)
FIF's 코딩팩토리
추상 클래스를 활용한 템플릿 메서드 패턴 템플릿 메서드 패턴을 알기전에 다음을 알아야한다. 라이브러리와 프레임워크는 다르다. JDK(Java Development Kit)는 라이브러리이다. 라이브러리는 흐름이 정해져 있지 않다. 사용자가 흐름을 주도하여 프로그램을 만든다. 안드로이드, 스프링은 프레임워크이다. 프레임워크를 도입한다는 의미는 흐름이 정해져 있고 거기에 사용자가 껴맞추는 방식이다. Place Hole 이라고 하는데, 구멍을 매꾼다는 뜻이다. 템플릿 메서드 패턴은 프레임워크에서 굉장히 많이 쓰는 패턴이다. 템플릿 메소드 패턴이란 특정 작업을 처리하는 일부분을 서브 클래스로 캡슐화하여 전체적인 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내용을 바꾸는 패턴이다. 디자인 패턴이라고 하기도 뭐할정..
추상 클래스의 의미와 구현하는 방법 추상클래스란 무엇일까? 1. 구현 코드 없이 메서드의 선언만 있는 추상 메서드(abstract method)를 포함한 클래스이다. 2. 메서드 선언(declaration) : 반환타입, 메서드 이름, 매개변수로 구성된다. 3. 메서드 정의(definition) : 메서드 구현(implementation)과 동일한 의미 구현부(body) 를 가진다. ({ }) 4. 예) int add(int x, int y); // 선언 int add(int x, int y){ } // 구현부가 있음, 추상 메서드 아님 5. abstract 예약어를 사용 6. 추상 클래스는 new 할 수 없다. ( 인스턴스화 할 수 없음 ) 그렇다면 추상 클래스를 구현하려면 어떻게 해야할까? 1. 메서..
상속은 언제 사용할까? 자바에서 상속은 IS-A 관계 일 때 사용한다. IS-A 관계(is a relationship : inheritance)란 다음과 같다. 1. 일반적인(general) 개념과 구체적인(specific) 개념과의 관계 2. 상위 클래스 : 하위 클래스보다 일반적인 개념 ( 예: Employee ) 3. 하위 클래스 : 상위 클래스보다 구체적인 개념들이 더해짐 ( 예: Engineer, Manager...) 4. 상속은 클래스간의 결합도가 높은 설계 5. 상위 클래스의 수정이 많은 하위 클래스에 영향을 미칠 수 있음 6. 계층구조가 복잡하거나 hierarchy가 높으면 좋지 않음 그리고 HAS-A관계일 경우에도 사용한다. HAS-A 관계(composition)란 다음과 같다. 1. 클..
다형성과 다형성을 사용하는 이유 다형성은 상속과 깊은 관계가 있다. 객체지향개념에서 다형성이란 '여러 가지 형태를 가질 수 있는 능력'을 의미하며 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록함으로써 다형성을 프로그램적으로 구현하였다. 인터페이스와 상속은 둘 다 다형성이라는 객체지향 프로그래밍의 특징을 구현하는 방식이다. 1 다형성: 하나의 객체를 여러 개의 타입으로, 하나의 타입으로 여러 종류의 객체를 여러 가지 모습으로 해석될 수 있는 성격이라고 생각하면 된다. vo.) 다형성(Ploymorphism): 'poly'는 다양한, 많은/‘morp'는 형태 2 다형성은 하나의 객체를 여러 가지 타입으로 선언할 수 있다는 뜻이다. 다형성은 개발자들에세는 간단히 말해서 하나의 사물(객체..
메소드 재정의 하기(overriding) 오버라이딩(overriding)이란 상속 관계에 있는 부모 클래스에서 이미 정의된 메소드를 자식 클래스에서 같은 시그니쳐를 갖는 메소드로 다시 정의하는 것이라고 할 수 있다. 자바에서 자식 클래스는 부모 클래스의 private 멤버를 제외한 모든 메소드를 상속받는다. 이렇게 상속받은 메소드는 그대로 사용해도 되고, 필요한 동작을 위해 재정의하여 사용할 수도 있다. 즉, 메소드 오버라이딩이란 상속받은 부모 클래스의 메소드를 재정의하여 사용하는 것을 의미한다. 오버라이딩의 조건 자바에서 메소드를 오버라이딩하기 위한 조건은 다음과 같다. 1. 오버라이딩이란 메소드의 동작만을 재정의하는 것이므로, 메소드의 선언부는 기존 메소드와 완전히 같아야 한다. 하지만 메소드의 반환..
객체 배열을 구현한 ArrayList 클래스 ArrayList 클래스는 객체 배열을 효율적으로 사용하기 위해 만들어진 클래스이다. java.util 패키지에서 제공되며 외부 라이브러리를 설치하거나 하는게 아닌 기본적으로 제공되는 클래스이다. ArrayList 클래스가 만들어진 계기는 기존의 배열 선언과 사용 방식은 배열의 길이를 정하고 요소의 개수가 배열의 길이보다 커지면 배열을 재할당하고 복사해야만 하는 문제가 있었다. 배열의 요소를 추가하거나 삭제하면 다른 요소들의 이동에 대한 구현을 해야한다. ArrayList는 객체 배열을 좀더 효율적으로 관리하기 위해 자바에서 제공해 주는 클래스이다. 이미 많은 메서드들이 최적의 알고리즘으로 구현되어 있어 각 메서드의 사용방법만 잘 익히면 유용하게 사용할 수 있..
객체간의 상속은 어떤 의미일까? 상속(inheritance)이란 기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 의미한다. 이러한 상속은 캡슐화, 추상화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나이다. 상속을 이용하면 기존에 정의되어 있는 클래스의 모든 필드와 메소드를 물려받아, 새로운 클래스를 생성할 수 있다. 이때 기존에 정의되어 있던 클래스를 부모 클래스(parent class) 또는 상위 클래스(super class), 기초 클래스(base class)라고도한다. 그리고 상속을 통해 새롭게 작성되는 클래스를 자식 클래스(child class) 또는 하위 클래스(sub class), 파생 클래스(derived class)라고도 한다. 상속의 장점은 무엇..
자료를 순차적으로 한꺼번에 관리하는 방법 - 배열 같은 데이터 타입을 가지는 서로 다른 값들이 하나의 변수로 처리되는 자료 구조이다. 배열도 객체다. 배열의 선언 자료형[] 배열이름; 배열을 사용하려면 먼저 배열을 선언해야 한다. 저장하려는 자료의 성격에 맞는 자료형과 함께 대괄호[]를 붙이면 된다. 대괄호는 자료형 뒤에 붙여도 되고 변수 이름 뒤에 붙여도 되는데, 대괄호가 자료형의 일부라고 보기 때문에 자료형에 붙이는 것을 선호한다. 배열 선언은 단지 생성된 배열을 다루기 위한 참조 변수를 위한 공간이 만들어진다. 배열의 생성 배열이름 = new 자료형[길이]; 배열을 생성해야 비로소 값을 저장할 수 있는 공간이 만들어진다. 배열을 생성하기 위해서는 new 예약어와 함께 배열의 자료형과 길이를 지정한다..