일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 재택근무
- java기초
- Spring
- 국비
- 자바연습문제
- js
- ncs
- DesignPattern
- 리눅스
- 직장인인강
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 스프링
- 웹
- 패스트캠퍼스후기
- 자바기본
- 자바예제
- 직장인자기계발
- 데이터베이스
- javabasic
- 디자인패턴
- 디자인
- DB
- 패스트캠퍼스
- linux
- String
- 패캠챌린지
- 자바
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- java
- 자바기초
- Today
- Total
목록전체 글 (239)
FIF's 코딩팩토리
String, StringBuilder, StringBuffer 클래스 Java에서 문자열을 다루는 대표적인 클래스로 String, StringBuffer, StringBuilder가 있다. 연산이 많이 않을때는 특별한 이슈가 발생할 가능성이 거의 없지만, 연산횟수가 많아지거나 멀티스레드, 경쟁 상태(Race Condition) 등의 상황이 자주 발생하면 각 클래스의 특징을 이해하고 상황에 맞는 적절한 클래스를 사용해야 한다. String과 StringBuffer와 StringBuilder의 기본적인 차이는 String은 불변(Immutable), StringBuffer와 StringBuilder는 변함(Mutable) 이다. String String 객체는 한번 생성되면 할당된 메모리 공간이 변하지 않..
Object 클래스 - 모든 클래스의 최상위 클래스 java.lang 패키지 java.lang 패키지는 자바에서 가장 기본적인 동작을 수행하는 클래스들의 집합이다 따라서 자바에서는 java.lang 패키지의 클래스들은 import 문을 사용하지 않아도 클래스 이름만으로 바로 사용할 수 있도록 하고 있다. java.lang.Object 클래스 java.lang 패키지 중에서도 가장 많이 사용되는 클래스는 바로 Object 클래스이다. Object 클래스는 모든 자바 클래스의 최고 조상 클래스가 된다. 따라서 자바의 모든 클래스는 Object 클래스의 모든 메소드를 바로 사용할 수 있다. 이러한 Object 클래스는 필드를 가지지 않으며, 총 11개의 메소드만으로 구성되어 있다. toString() 메소드 ..
인터페이스 사용 이유 저번시간에는 인터페이스가 무엇인지 알아보았다. 그렇다면 인터페이스는 왜 사용 하는가? 클래스나 프로그램이 제공하는 기능을 명시적으로 선언해주는 역할을 한다. 일종의 클라이언트 코드와의 약속이며 클래스나 프로그램이 제공하는 명세(specification)라고 한다. 클라이언트 프로그램은 인터페이스에 선언된 메서드 명세만 보고 이를 구현한 클래스를 사용할 수 있다. 어떤 객체가 하나의 인터페이스 타입이라는 것은 그 인터페이스가 제공하는 모든 메서드를 구현했다는 의미이다. 인터페이스를 구현한 다양한 객체를 사용한다. 인터페이스와 다형성 인터페이스를 활용하여 다형성을 구현한 대표적인 예가 DAO 이다. DAO란 Data Access Ojbect의 약자로 DB에서 데이터에 접근하는 객체이다...
인터페이스란? 인터페이스의 본질을 알아보기전에 간단하게 OOP에 대해서 다시 정리하고 넘어가자. OOP는 변경에 유연한 설계기법이다. OOP에서 자주 나오는 용어에는 다형성이 있다. 다형성은 상속을 통해 기능을 확장하거나 변경하는 것을 가능하게 해주는 것을 의미한다. 다형성이 가능하도록 OOP세계에서는 상속,추상화,인터페이스라는 개념이 등장한다. 상속 정의는 부모 클래스의 모든 멤버를 하위 클래스가 물려 받는 것이다. 단, IS A 관계가 성립해야 한다. 아무런 규약 없이 상속을 하게 되면 객체간에 강한 결합을 가지게 된다. 추상화 데이터나 프로세스 등을 의미가 비슷한 개념이나 표현으로 정의해 나가는 과정을 의미한다. 각 개별 개체의 구체적인 구현에 대한 상세함은 갖추는 것을 의미한다. 인터페이스 모든 ..
추상 클래스를 활용한 템플릿 메서드 패턴 템플릿 메서드 패턴을 알기전에 다음을 알아야한다. 라이브러리와 프레임워크는 다르다. 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 다형성은 하나의 객체를 여러 가지 타입으로 선언할 수 있다는 뜻이다. 다형성은 개발자들에세는 간단히 말해서 하나의 사물(객체..