전체 글 (97) 썸네일형 리스트형 [Java] 상속(Inheritance) - 코딩밥상 상속의 정의와 장점 상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 이러한 특징은 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다. 자바에서는 'extends'를 사용하여 상속하는데, 상속해주는 클래스를 '조상 클래스'라 하고 상속 받는 클래스를 '자손 클래스'라고 한다. 자손 클래스는 조상 클래스의 모든 멤버를 상속받는다(생성자와 초기화 블럭은 상속되지 않는다). 따라서 만약 조상 클래스에 멤버 변수를 추가하면 자손 클래스에도 자동적으로 멤버 변수가 추가되는것과 같다.. [Java] 초기화 블럭(initialization block) - 코딩밥상 초기화 블럭(initialization block)이란? 클래스의 멤버변수의 초기화 방법에는 여러가지가 있다. 1. 명시적 초기화 2. 생성자 3. 초기화 블럭 1. 명시적 초기화는 기본적인 방법으로 변수를 선언과 동시에 값을 넣어 초기화 하는 방법이다. 2. 생성자를 통한 초기화는 앞 생성자에서 충분히 다루어 이해할 수 있었다. 3. 이번에 정리할 것은 초기화 블럭인데, '클래스 초기화 블럭'과 '인스턴스 초기화 블럭' 두 가지 종류가 있다. 전자는 클래스변수의 초기화에, 후자는 인스턴스변수의 초기화에 사용된다. 초기화 블럭을 작성하려면, 인스턴스 초기화 블럭은 단순히 클래스 내에 블럭{ }을 만들고 클래스 초기화 블럭은 앞에 static만 붙여주면 된다. 이렇게 생성한 초기화 블럭 안에는 조건문,반복.. [Java] 생성자(Constructor) - 코딩밥상 생성자란? 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드' 이다. 따라서 인스턴스 변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 할 작업을 위해서도 사용된다. 생성자의 조건은 다음과 같다. 1. 생성자의 이름은 클래스의 이름과 같아야 한다. 2. 생성자는 리턴 값이 없다. 인스턴스를 생성할 때의 과정을 보면 클래스명 참조변수 = new 클래스명(); 연산자 new에 의해서 메모리(Heap)에 인스턴스가 생성된다. 생성자가 호출되어 수행된다. 연산자 new의 결과로 생성된 인스턴스의 주소가 반환되어 참조변수에 저장된다. 즉 연산자 new가 인스턴스를 생성하는 것이지, 생성자가 인스턴스를 생성하는 것이 아니다. 생성자라는 용어 때문에 오해하기 쉬운데, 생성자는 단순히 .. [Java] 오버로딩(overloading) - 코딩밥상 오버로딩이란? 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다. 이처럼, 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 '메서드 오버로딩(method overloading)' 또는 '오버로딩(overloading)'이라 한다. 오버로딩의 조건 메서드 이름이 같아야 한다. 매개변수의 개수 또는 타입이 달라야 한다. 이를 보면 알겠지만, 컴파일러는 매개변수로 오버로딩을 구별한다. 즉, 오버로딩된 매서드들은 매개변수에 의해서만 구별될 수 있으므로 반환타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다. 오버로딩의 장점 근본적으로 같은 기능을 하는 메서드들이 있다고 할 때, 서로 다른.. [Java] JVM의 메모리 구조와 클래스 멤버 - 코딩밥상 JVM의 메모리 구조 응용 프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. 그 중 3가지 주요 영역(Method Area, Heap Area, Stack Area)먼저 정리해보자. 1. 메서드 영역(Method Area) 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일(*.class)을 읽어서 분석하여 클래스에 대한 정보(클래스 데이터)를 이곳에 저장한다. 이 때, 그 클래스의 클래스변수도(class variable)도 이 영역에 함께 생성된다. 2. 힙(Heap) 인스턴스가 생성되는 공간으로 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성된다. 즉 인스턴스 변.. [Java] 클래스와 객체 - 코딩밥상 클래스 '클래스(class)'란 "객체를 정의해놓은 것" 또는 "객체의 설계도 또는 틀" 이라고 정의할 수 있다. 즉 클래스는 객체를 생성하는데 사용되며, 객체는 클래스에 정의된 대로 생성된다. 객체 객체의 사전적 정의는, '실제로 존재하는 것' 이다. 주변에서 볼 수 있는 사물들을 곧 객체라고 할 수 있다. 객체지향이론에서는 사물과 같은 유형적인 것 뿐만 아니라, 개념이나 논리와 같은 무형적인 것들도 객체로 간주한다. 프로그래밍에서의 객체는 클래스에 정의된 내용대로 메모리에 생성된 것을 뜻한다. 클래스와 객체 관계 우리의 실생활에서 두 관계를 예를 들면, 제품 설계도(클래스)와 제품(객체)과의 관계라고 할 수 있다. 클래스는 단지 객체를 생성하는데 사용될 뿐, 객체 그 자체는 아니다. 원하는 기능의 객.. [Java] 실수형 변수(float, double) - 코딩밥상 실수형 변수 float, double 실수형의 표현 범위 실수형은 말그대로 실수를 저장하기 위한 변수 타입으로 float와 double 두 가지가 있으며 각 타입의 변수에 저장할 수 있는 값의 범위는 다음 표와 같다. 즉 실수형은 소수점도 표현해야 하므로 '얼마나 큰 값을 표현할 수 있는가'뿐만 아니라 '얼마나 0에 가깝게 표현할 수 있는가'도 중요한 요소이다. 여기서 생기는 궁금점이 '4byte의 정수로는 약 +-2*10^9 범위의 값밖에 표현 가능한데 어떻게 같은 4byte로 +-3.4*10^34와 같은 큰 값을 표현할 수 있을까?' 이다. 이에 대한 답은 값을 저장하는 방식이 다르기 때문이다. 일반적인 방법인 고정 소수점 방식을 사용하면 '부호'와 '값(정수 + 소수)' 만으로 직관적으로 표현하지만.. [백준(BOJ)/C++] 14713번: 앵무새 - 코딩밥상 https://www.acmicpc.net/problem/14713 14713번: 앵무새 자가용 비행기를 타고 세계 일주를 하던 pps789와 cseteram은 어느 날 엔진 고장으로 인해 이름 모를 섬에 불시착하게 된다. 그들은 이 섬을 탐험하는 도중 아주 신기한 사실을 알게 되었는데, 바로 www.acmicpc.net 접근 방법 이 문제의 주안점은 앵무새의 문장마다 단어의 순서대로 결과값과 비교하여 단어들이 올 수 있는지 비교하는 것이었다. 즉 앵무새의 문장에서 단어들이 선입 선출(FIFO)로 나올 수 있다면 Possible, 없다면 Impossible인 것이다. 따라서 선입 선출을 다루기에 적합한 자료구조인 큐를 이용하였고 앵무새의 문장을 각각 따로 구분하여 넣어줄 자료구조로 벡터를 선택했다. ge.. 이전 1 2 3 4 5 6 ··· 13 다음