목록Language/Java (6)
우노
"객체 지향 프로그래밍에 대해 설명 한 번 해주세요." 여러 SW기업 신입사원 기술면접에서 워밍업 느낌으로 면접자들의 긴장을 풀어줄 겸 처음으로 자주 나오는 질문이다. 가장 기본이면서 이것마저 대답을 명확하게 못하면 첫인상이 안 좋아지는(?) 결과를 만드는 질문이며, 워밍업 같지만 꼬리에 꼬리를 무는 모든 질문의 시작(?)이다. 객체 지향 프로그래밍(Object-Oriented Programming, OOP)이란? 객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜, 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법 이다. 이러면, 이제 꼬리에 꼬리를 무는 질문이 시작된다. "객체 지향 프로그래밍을..
오버로딩(Overloading)과 오버라이딩(Overriding) 자바에서 다형성을 지원하는 방법으로 메소드 오버로딩(Overloading)과 오버라이딩(Overriding)이 있다. 오버로딩(Overloading)과 오버라이딩(Overriding)의 개념은 다르지만, 이름이 비슷해 참 헷갈린다. 오버로딩(Overloading) : 같은 이름의 메소드를 여러 개 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술 오버라이딩(Overriding) : 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의 해서 사용하는 기술 오버로딩(Overloading) 간단한 예제 코드를 통해 알아보자. Overloadingtest.java public class Overloadingtest { // 기본 test(..
상속(Inheritance)이란? 상속에 대해서 다루기 전에 우선, OOP(Object-Oriented Programming, 객체지향프로그래밍)가 무엇인지에 대해 알고 있어야한다. OOP는 다음과 같은 특징을 가지고 있다. 상속과 인터페이스 (계층성) 다형성, 사용편의성 (모듈화) 캡슐화, 정보은닉 자료 추상화 (모델링) 동적 바인딩 아래 그림을 통해, 상속에 대해 이해해보자. 상자 하나하나는 모두 객체(Object)이고, 자바 용어로는 Class이다. 이러한 계층을 표현하기 위해 만들어진 것이 바로 상속이다. 상속 시, 하위 객체(자식)는 상위 객체(부모)의 특징(메소드, 변수 등)을 물려받게 된다. 이 때, 상위 객체(부모)의 특징(메소드, 변수 등)을 '새롭게 구현'하는가, '..
Superinterface란? 예제 코드 public interface A { void doSomething(); } public interface B extends A { void doSomethingElse(); } 위 예제코드에서, interface A는 interface B의 Superinterface이다. 즉, interface B는 interface A로부터 상속된다. 따라서, 자식(B)는 부모(A)의 메소드를 그대로 사용할 수 있으며, 오버라이딩 할 필요 없이 부모(A)에 구현되어 있는 것을 직접 사용가능하다.
컴파일(Compile) 컴파일이란 개발자가 작성한 소스코드를 바이너리 코드로 변환하는 과정을 말한다. (목적파일이 생성됨) 즉, 컴퓨터가 이해할 수 있는 기계어로 변환하는 작업이다. 이러한 작업을 해주는 프로그램을 가르켜 컴파일러(Compiler)라 한다. 자바의 경우, 자바가상머신(JVM)에서 실행가능한 바이트코드 형태의 클래스파일이 생성이 된다. .java라는 자바 클래스 파일을 바탕으로 .class라는 클래스 파일이 생성된다. 빌드(Build) 소스코드 파일을 실행가능한 소프트웨어 산출물로 만드는 일련의 과정을 말한다. JAR, WAR 등의 실행 가능한 파일을 만드는 작업을 일컫는다. 빌드의 단계 중 컴파일이 포함이 되어 있는데 컴파일은 빌드의 부분집합이라 할 수 있다. 빌드 과정을 도와주는 도구를..
JAR (Java ARchive Files) Java의 실행파일이다. 여러개의 자바 클래스 파일과, 클래스들이 이용하는 관련 리소스(텍스트, 그림 등) 및 메타데이터를 하나의 파일로 모아서 자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 소프트웨어 패키지 파일 포맷이다. JAR 파일은 실제로 ZIP 파일 포맷으로 이루어진 압축 파일로서, 파일 확장자는 .jar이다.