일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링
- 자바
- Spring
- 패스트캠퍼스
- 리눅스
- 자바기본
- 디자인
- 자바기초
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- 웹
- 패스트캠퍼스후기
- 디자인패턴
- 직장인자기계발
- 데이터베이스
- 자바연습문제
- DB
- js
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- ncs
- java
- String
- javabasic
- 직장인인강
- java기초
- DesignPattern
- 자바예제
- 국비
- 패캠챌린지
- linux
- 재택근무
- Today
- Total
목록전체 글 (239)
FIF's 코딩팩토리
메소드 재정의 하기(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 예약어와 함께 배열의 자료형과 길이를 지정한다..
static 응용 - 싱글톤 패턴 프로그래밍을 하다보면 단 하나만 존재하는 인스턴스가 존재할 수 있다. 예를들어 회사에 대한 정보를 저장하는 클래스를 생성한다고 가정하면 회사명은 하나만 존재하면 된다. 이렇게 인스턴스가 오직 1개만 생성되야 하는 경우에 사용하는 패턴이다. 싱글턴 패턴을 구현할 때 멀티 스레딩 환경에서도 동작이 가능해야 하기 때문에 Thread-safe가 보장되어야 한다. static 키워드의 특징을 이용하여 프로그램이 시작하는 시점에서 정적 바인딩을 통해 해당 공유 인스턴스를 메모리에 올려 사용하는 방식이다. Company.java static 키워드로 instance 객체를 생성한 후 해당 인스턴스를 가져올 때 마다 static 메서드인 getInstance를 통해 가져오도록 설정한다..
여러 인스턴스에서 공통으로 사용하는 변수 - static 변수 new 키워드를 통해 생성된 인스턴스는 heap 메모리에 만들어진다. 그 후, 인스턴스의 사용이 끝나면 garbage collector를 통해 자동으로 메모리에서 삭제된다.(자바의 최대 장점중 하나) 그렇다면 static 변수란 무엇인가? 사전적 의미로는 정적인 이라는 뜻이 있다. 자바에서 static이 붙은 변수는 선언되자마자 메모리에 우선순위로 만들어 지게 된다. 이때 static 메모리 영역에 저장된다. new키워드를 통해 만들어진 인스턴스와는 반대로 static이 붙으면 사용이 끝나도 메모리에 항상 남아있다. 자바에서 main 메서드를 최우선적으로 탐색하는 이유도 main 메서드 앞에 static이 붙기 때문이다. 자 그렇다면 공통으로..
객체간의 협력 객체는 혼란스러우면 안된다. 객체 이름에 맞는 유일한 일들을 해야한다. 그리고 객체끼리 협력이 이루어져야 한다. 하나의 객체가 혼자만 돌아가는게 아니라 다른 객체들과 함께 맞물려 연동되며 돌아가야 한다. 매개변수로 객체 자체가 전달되는 경우도 있다. 예를들어 버스를 타고 학교를 간다고 해보자. 이 때, 어떤 버스인지 전달이 이루어져야 하고 어디 학교를 갈건지도 전달 되어야 한다. 그렇다면 버스를 타고 학교가는 학생의 과정을 객체 지향 프로그래밍으로 한번 구현해보지. 전제 조건은 아래와 같다. James와 Tomas는 각각 버스와 지하철을 타고 학교에 갑니다. James는 5000원을 가지고 있었고, 100번 버스를 타면서 1000원을 지불합니다. Tomas는 10000원을 가지고 있었고, ..
객체 자신을 가리키는 this 생성자나 메서드에서 this. 이런식으로 사용했다. 그렇다면 thsi란 무엇인가? this는 c++등등 다른 프로그래밍 언어에서도 나오는 키워드이다. 이 키워드는 상속과 관련있는 super키워드와 연관이 있다. new로 생성된 인스턴스는 heap 메모리에 생긴다고 했다. 클래스 내에서 참조변수가 가지는 주소 값과 동일한 주소 값을 가지는 키워드이다. this 키워드는 다음과 같은 경우에 사용된다. 1. 자신의 주소 참조값 자체를 반환할 때도 this를 사용한다. 아래 코드를 보자. main 메서드에는 args와 day라는 변수가 있다. 이 때 day는 인스턴스로 heap 메모리에 생긴다. 그리고 setYear() 메서드를 호출하면서 그 메서드를 보면 this키워드를 볼 수 ..