Programming Language/Java
-
자바 - 인스턴스 멤버와 정적 멤버 우리가 보통 자바의 클래스에 대해 배울 때 클래스는 객체의 설계도라고 배웠다. 그리고 클래스 멤버(필드, 메서드)는 당연히 객체에 포함되어 있어야 한다. 하지만 생각해 보면 같은 클래스로부터 만들어진 객체에도 객체들끼리의 공통 클래스 멤버가 존재할 수 있는데 이 멤버들을 객체를 생성할 때마다 공통 멤버도 같이 생성하는 게 과연 효율적인가에 대해 질문해 볼 수 있다. 예를 들어보자면, 객체마다 필드 값이 달라야 한다면 해당 필드는 객체마다 따로 가지고 있는 게 맞다, 하지만 객체마다 필드의 값이 모두 같아야 한다면? 예를 들어, 원주율 같은 필드가 있다고 했을 때 원주율이 객체마다 다를 필요 없이 모두 같아야 한다. 만약 객체마다 원주율 필드를 따로 가지고 있다면 메모리..
[Java] 자바 - 인스턴스 맴버와 정적 맴버자바 - 인스턴스 멤버와 정적 멤버 우리가 보통 자바의 클래스에 대해 배울 때 클래스는 객체의 설계도라고 배웠다. 그리고 클래스 멤버(필드, 메서드)는 당연히 객체에 포함되어 있어야 한다. 하지만 생각해 보면 같은 클래스로부터 만들어진 객체에도 객체들끼리의 공통 클래스 멤버가 존재할 수 있는데 이 멤버들을 객체를 생성할 때마다 공통 멤버도 같이 생성하는 게 과연 효율적인가에 대해 질문해 볼 수 있다. 예를 들어보자면, 객체마다 필드 값이 달라야 한다면 해당 필드는 객체마다 따로 가지고 있는 게 맞다, 하지만 객체마다 필드의 값이 모두 같아야 한다면? 예를 들어, 원주율 같은 필드가 있다고 했을 때 원주율이 객체마다 다를 필요 없이 모두 같아야 한다. 만약 객체마다 원주율 필드를 따로 가지고 있다면 메모리..
2023.12.26 -
자바 - 상속 자바에서 상속은 객체 지향 프로그래밍(OOP)의 핵심 개념 중 하나로, 클래스들 간에 코드를 재사용하고 확장하기 위한 메커니즘을 제공한다. 상속은 기존 클래스의 특성과 동작을 그대로 가져와 새로운 클래스를 만들 수 있게 해 준다. 이때, 기존 클래스는 부모 클래스(또는 상위 클래스)라고 하고, 새로운 클래스는 자식 클래스(또는 하위 클래스)라고 한다. 기본개념 핸드폰과 아이폰 클래스의 관계를 봤을 때 아이폰은 상위 개념으로 핸드폰이라고 할 수 있다. 따라서 위의 예시처럼 아이폰 클래스는 핸드폰 클래스를 상속받아 사용할 수 있다. 또한, 그림에는 없지만 핸드폰의 상위 개념으로 "기계"가 될 수 도 있겠다. 이처럼 현실 세계의 모든 객체는 객체와 객체끼리 부모와 자식 관계를 형성한다고 생각하면..
[Java] 자바 - 상속자바 - 상속 자바에서 상속은 객체 지향 프로그래밍(OOP)의 핵심 개념 중 하나로, 클래스들 간에 코드를 재사용하고 확장하기 위한 메커니즘을 제공한다. 상속은 기존 클래스의 특성과 동작을 그대로 가져와 새로운 클래스를 만들 수 있게 해 준다. 이때, 기존 클래스는 부모 클래스(또는 상위 클래스)라고 하고, 새로운 클래스는 자식 클래스(또는 하위 클래스)라고 한다. 기본개념 핸드폰과 아이폰 클래스의 관계를 봤을 때 아이폰은 상위 개념으로 핸드폰이라고 할 수 있다. 따라서 위의 예시처럼 아이폰 클래스는 핸드폰 클래스를 상속받아 사용할 수 있다. 또한, 그림에는 없지만 핸드폰의 상위 개념으로 "기계"가 될 수 도 있겠다. 이처럼 현실 세계의 모든 객체는 객체와 객체끼리 부모와 자식 관계를 형성한다고 생각하면..
2023.12.23 -
자바 - 클래스 자바(Java)에서 객체(Object)는 클래스(Class)의 인스턴스(Instance)이다. 객체는 데이터와 그 데이터를 처리하는 메서드(Method)의 조합으로 이루어져 있다. 자바는 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 언어로, 객체 지향 프로그래밍은 현실 세계의 개념을 모델링하고 문제를 해결하기 위해 객체를 사용한다. 현실 세계의 개념을 소프트웨어 객체로 추상화하여 설계하는 프로세스를 객체 모델링(Object Modeling)이라고 한다. 이는 객체 지향 프로그래밍의 기반이다. 또한, 객체 모델링은 현실 세계의 복잡한 시스템을 이해하고 문제를 해결하기 위해 객체, 클래스, 그리고 이들 간의 관계를 정의하는 과정을 포함한다. 객체 모델링은..
[Java] 자바 - 클래스자바 - 클래스 자바(Java)에서 객체(Object)는 클래스(Class)의 인스턴스(Instance)이다. 객체는 데이터와 그 데이터를 처리하는 메서드(Method)의 조합으로 이루어져 있다. 자바는 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 언어로, 객체 지향 프로그래밍은 현실 세계의 개념을 모델링하고 문제를 해결하기 위해 객체를 사용한다. 현실 세계의 개념을 소프트웨어 객체로 추상화하여 설계하는 프로세스를 객체 모델링(Object Modeling)이라고 한다. 이는 객체 지향 프로그래밍의 기반이다. 또한, 객체 모델링은 현실 세계의 복잡한 시스템을 이해하고 문제를 해결하기 위해 객체, 클래스, 그리고 이들 간의 관계를 정의하는 과정을 포함한다. 객체 모델링은..
2023.12.21 -
자바 EOF(End Of File) 처리 EOF는 End of File의 약어로, 파일의 끝을 나타내는 특수한 마커이다. 파일에서 더 이상 읽을 내용이 없거나 쓸 내용이 없을 때, EOF 마커가 나타나며, 이는 파일의 끝을 나타내어 프로그램에게 파일의 끝을 인식할 수 있게 한다. EOF는 주로 파일 읽기나 입력 소스에서 데이터를 읽을 때 사용된다. 예를 들어, 파일의 끝에 도달했을 때 반복문을 종료하는 데 사용할 수 있다. 파일에서 데이터를 읽을 때 EOF를 확인하여 계속해서 읽을지, 아니면 종료할지 결정할 수 있다. 파일의 끝은 파일의 끝 부분이 아닌, 파일에서 더 이상 읽을 데이터가 없는 지점을 나타낸다. 파일에서 EOF를 확인하는 방법은 프로그래밍 언어나 도구에 따라 다를 수 있다. 대표적으로 파일..
[Java] 자바 EOF(End Of File) 처리자바 EOF(End Of File) 처리 EOF는 End of File의 약어로, 파일의 끝을 나타내는 특수한 마커이다. 파일에서 더 이상 읽을 내용이 없거나 쓸 내용이 없을 때, EOF 마커가 나타나며, 이는 파일의 끝을 나타내어 프로그램에게 파일의 끝을 인식할 수 있게 한다. EOF는 주로 파일 읽기나 입력 소스에서 데이터를 읽을 때 사용된다. 예를 들어, 파일의 끝에 도달했을 때 반복문을 종료하는 데 사용할 수 있다. 파일에서 데이터를 읽을 때 EOF를 확인하여 계속해서 읽을지, 아니면 종료할지 결정할 수 있다. 파일의 끝은 파일의 끝 부분이 아닌, 파일에서 더 이상 읽을 데이터가 없는 지점을 나타낸다. 파일에서 EOF를 확인하는 방법은 프로그래밍 언어나 도구에 따라 다를 수 있다. 대표적으로 파일..
2023.12.10 -
자바 배열(Array) 만약 우리가 동일한 유형의 데이터를 여러 개를 만들어야 한다면 어떻게 해야 할까? 만약 배열을 아직 배우지 않았더라면 우리는 다음과 같이 코드를 작성할 것이다. int a = 1; int b = 2; int c = 3; ... int z = 26; 1~2개라면 각각 변수를 만들어 위와 같이 선언할 수 있겠지만 만약 생성해야 하는 데이터가 100개, 1,000개, 10,000개가 된다면 어떨까? 이는 정말 비효율적일 것이다. 그래서 필요한 게 오늘 우리가 학습할 배열이다. 자바에서 배열(Array)은 동일한 데이터 유형의 여러 값을 저장할 수 있는 데이터 구조이다. 배열은 메모리 내에서 연속된 위치에 할당되며, 각 요소는 인덱스를 사용하여 접근한다. 배열은 고정된 크기를 가지며, 한..
[Java] 자바 배열(Array)자바 배열(Array) 만약 우리가 동일한 유형의 데이터를 여러 개를 만들어야 한다면 어떻게 해야 할까? 만약 배열을 아직 배우지 않았더라면 우리는 다음과 같이 코드를 작성할 것이다. int a = 1; int b = 2; int c = 3; ... int z = 26; 1~2개라면 각각 변수를 만들어 위와 같이 선언할 수 있겠지만 만약 생성해야 하는 데이터가 100개, 1,000개, 10,000개가 된다면 어떨까? 이는 정말 비효율적일 것이다. 그래서 필요한 게 오늘 우리가 학습할 배열이다. 자바에서 배열(Array)은 동일한 데이터 유형의 여러 값을 저장할 수 있는 데이터 구조이다. 배열은 메모리 내에서 연속된 위치에 할당되며, 각 요소는 인덱스를 사용하여 접근한다. 배열은 고정된 크기를 가지며, 한..
2023.11.13 -
자바 조건문(if,else if, else, switch) 오늘은 Java에서 사용하는 조건문인 if, else if, else 그리고 switch와 같은 조건문에 대해 알아보는 시간을 가져보자. 조건문은 프로그램의 흐름을 제어하는 중요한 도구이다. 이러한 조건문은 다음과 같은 이유로 프로그래밍을 하는 데 있어 꼭 필요한 존재이다. 이유 내용 조건부 실행 조건문을 사용하면 특정 조건이 충족되는 경우에만 코드 블록을 실행할 수 있다. 이로써 프로그램은 특정 상황에 따라 다른 작업을 수행할 수 있게 된다. 분기 로직 조건문은 다양한 분기 로직을 처리하는 데 사용된다. 예를 들어, 사용자 입력에 따라 다른 동작을 처리하거나, 조건에 따라 다른 계산을 수행할 수 있다. 에러 처리 조건문은 오류나 예외 상황을 처..
[Java] 자바 조건문(if,else if, else, switch)자바 조건문(if,else if, else, switch) 오늘은 Java에서 사용하는 조건문인 if, else if, else 그리고 switch와 같은 조건문에 대해 알아보는 시간을 가져보자. 조건문은 프로그램의 흐름을 제어하는 중요한 도구이다. 이러한 조건문은 다음과 같은 이유로 프로그래밍을 하는 데 있어 꼭 필요한 존재이다. 이유 내용 조건부 실행 조건문을 사용하면 특정 조건이 충족되는 경우에만 코드 블록을 실행할 수 있다. 이로써 프로그램은 특정 상황에 따라 다른 작업을 수행할 수 있게 된다. 분기 로직 조건문은 다양한 분기 로직을 처리하는 데 사용된다. 예를 들어, 사용자 입력에 따라 다른 동작을 처리하거나, 조건에 따라 다른 계산을 수행할 수 있다. 에러 처리 조건문은 오류나 예외 상황을 처..
2023.10.13 -
자바 반복문 사용법(for,while,do-while) 자바에서는 다양한 종류의 반복문을 사용할 수 있다. 이러한 반복문들은 특정 조건을 만족할 때까지 코드 블록을 반복적으로 실행하는 데 사용된다. 가장 일반적인 반복문은 for, while, do-while문들이 있는데 이들을 하나하나씩 자세히 알아보는 시간을 가져보자. 1. for for 루프는 초기화식, 조건식, 증감식으로 구성되어 있다. 초기화식은 반복을 시작하기 전에 한 번만 실행되며, 조건식은 각 반복마다 평가되어 조건을 검사한다. 조건식이 참일 경우 루프 본문이 실행되고, 증감식은 각 반복 후에 실행된다. 예제 코드 - for 루프의 기본 구조 for (초기화식; 조건식; 증감식) { // 반복 실행할 코드 } 1. 초기화식(Initializ..
[Java] 자바 반복문 사용법(for,while,do-while)자바 반복문 사용법(for,while,do-while) 자바에서는 다양한 종류의 반복문을 사용할 수 있다. 이러한 반복문들은 특정 조건을 만족할 때까지 코드 블록을 반복적으로 실행하는 데 사용된다. 가장 일반적인 반복문은 for, while, do-while문들이 있는데 이들을 하나하나씩 자세히 알아보는 시간을 가져보자. 1. for for 루프는 초기화식, 조건식, 증감식으로 구성되어 있다. 초기화식은 반복을 시작하기 전에 한 번만 실행되며, 조건식은 각 반복마다 평가되어 조건을 검사한다. 조건식이 참일 경우 루프 본문이 실행되고, 증감식은 각 반복 후에 실행된다. 예제 코드 - for 루프의 기본 구조 for (초기화식; 조건식; 증감식) { // 반복 실행할 코드 } 1. 초기화식(Initializ..
2023.10.10 -
자바는 정적 타입 언어로 모든 변수와 표현식에 데이터 타입을 명시해야 한다. 이것은 컴파일러가 코드를 검사하여 타입 관련 오류를 미리 발견하고 예방하는 데 도움이 된다. 자바의 데이터 타입은 크게 기본 데이터 타입(Primitive Data Types)과 참조 데이터 타입(Reference Data Types)으로 나눌 수 있다. 아래에서 이 두 가지 타입을 설명하고 각각에 대한 예시코드를 보며 참고해 보자. 1. 기본 데이터 타입(Primitive Data Types) 기본 데이터 타입은 단일 값만 저장하며 스택 메모리에 저장된다. 기본 데이터 타입에는 다음과 같은 종류가 있다. • 정수 타입(Integer Types) 정수를 저장하는 데 사용되고 int, byte, short, long이 있다. in..
[Java] 자바 자료형(Data type)자바는 정적 타입 언어로 모든 변수와 표현식에 데이터 타입을 명시해야 한다. 이것은 컴파일러가 코드를 검사하여 타입 관련 오류를 미리 발견하고 예방하는 데 도움이 된다. 자바의 데이터 타입은 크게 기본 데이터 타입(Primitive Data Types)과 참조 데이터 타입(Reference Data Types)으로 나눌 수 있다. 아래에서 이 두 가지 타입을 설명하고 각각에 대한 예시코드를 보며 참고해 보자. 1. 기본 데이터 타입(Primitive Data Types) 기본 데이터 타입은 단일 값만 저장하며 스택 메모리에 저장된다. 기본 데이터 타입에는 다음과 같은 종류가 있다. • 정수 타입(Integer Types) 정수를 저장하는 데 사용되고 int, byte, short, long이 있다. in..
2023.09.04 -
오늘은 Java에 대해 배우기 앞서 Java란 무엇인가에 대해 간단하게 알아보는 시간을 가져보자. 자바(Java)는 객체 지향 프로그래밍 언어로, 1995년에 선 마이크로시스템즈(현재 오라클)에서 개발된 언어이다. 자바는 다양한 플랫폼에서 실행 가능한 애플리케이션을 만들 수 있는데 이를 "Write Once, Run Anywhere" 원칙에 따라 개발한 언어이다. 즉, 한 번 작성한 코드를 여러 운영체제나 플랫폼에서 실행할 수 있도록 하는 특징을 가지고 있다. 자바는 많은 분야에서 사용되며, 주로 다음과 같은 특징으로 유명하다. 1. 객체 지향 프로그래밍(OOP) 자바는 객체 지향적인 프로그래밍 패러다임을 기반으로 한다. 클래스와 객체를 활용하여 코드를 모듈화 하고 재사용성을 높일 수 있다. 2. 플랫폼..
[Java] 자바(Java)란 무엇인가?오늘은 Java에 대해 배우기 앞서 Java란 무엇인가에 대해 간단하게 알아보는 시간을 가져보자. 자바(Java)는 객체 지향 프로그래밍 언어로, 1995년에 선 마이크로시스템즈(현재 오라클)에서 개발된 언어이다. 자바는 다양한 플랫폼에서 실행 가능한 애플리케이션을 만들 수 있는데 이를 "Write Once, Run Anywhere" 원칙에 따라 개발한 언어이다. 즉, 한 번 작성한 코드를 여러 운영체제나 플랫폼에서 실행할 수 있도록 하는 특징을 가지고 있다. 자바는 많은 분야에서 사용되며, 주로 다음과 같은 특징으로 유명하다. 1. 객체 지향 프로그래밍(OOP) 자바는 객체 지향적인 프로그래밍 패러다임을 기반으로 한다. 클래스와 객체를 활용하여 코드를 모듈화 하고 재사용성을 높일 수 있다. 2. 플랫폼..
2023.08.31