메서드란?프로그래밍을 하다 보면 같은 코드를 반복해서 작성하게 되는 경우가 많습니다. 하지만 반복되는 코드를 매번 작성하기보다는, 하나의 코드로 정의해두고 여러 곳에서 재사용하는 것이 훨씬 효율적이고 관리하기 쉽습니다. 이럴 때 사용하는 것이 바로 메서드(Method) 입니다. 메서드는 반복되는 코드를 하나로 묶어 재사용할 수 있게 해주는 프로그래밍의 핵심 도구입니다. 메서드는 특정 작업을 수행하는 코드 블록으로 아래와 같이 정리할 수 있습니다.어떤 기능을 하나로 묶은 코드 덩어리입니다.반복적으로 사용되는 코드를 한 번만 정의하고, 필요할 때마다 호출해서 사용할 수 있습니다.Java에서는 메서드가 클래스 안에 정의됩니다. 메서드의 필요성코드의 재사용성 같은 코드를 여러 번 쓰지 않고 한 번 정의해서 ..
클래스 변수란?클래스 변수는 해당 클래스를 통해 생성된 모든 인스턴스가 공유하는 변수입니다. 즉, 인스턴스가 100개든 1000개든, 모두 같은 값을 공유하고 있습니다. 클래스 변수의 선언class MyClass { static int count = 0; // 클래스 변수}클래스 변수는 static 키워드를 붙여 선언합니다. 해당 코드는 int형 변수인 count를 클래스 변수로 선언한 코드입니다. 클래스 변수의 특징클래스 로딩 시 메모리에 올라갑니다.객체를 생성하지 않아도 MyClass.count처럼 클래스명으로 직접 접근할 수 있습니다.모든 인스턴스가 동일한 값을 공유합니다. 인스턴스 변수란?인스턴스 변수란, 클래스 내부에서 선언되고, 각각의 객체가 독립적으로 가지는 변수입니다. 즉..
캡슐화란?객체의 속성(데이터)과 메서드(동작)를 하나로 묶고, 외부에서 직접 접근하지 못하도록 감추는 것을 말합니다. 즉, 데이터를 보호하고, 의도하지 않은 결과가 일어나지 않게, 통제 가능한 방식으로만 다루게 하는 것입니다. 예를 들어 은행 계좌를 생각해보겠습니다.우리는 계좌에 대한 입금, 출금, 잔액 조회는 반드시 은행 창구나 앱을 통해서만 할 수 있습니다. 이 창구나 앱이 바로 공개된 메서드(public method)이고, 잔액(balance) 같은 정보는 외부에서 직접 접근할 수 없는 숨겨진(private) 정보입니다. 우리가 잔액을 직접 변경 할 수는 없습니다. 만약 직접 접근이 가능하게되면 잔액을 우리의 임의대로 변경이 가능하니, 위험한 상황 또는 의도치 않은 일이 발생할 수 있습니다. 따라..
클래스클래스는 일종의 설계도입니다. 자동차 공장에서 자동차를 만들기 위해 먼저 설계도를 그리듯, 클래스는 객체를 만들기 위한 틀입니다. class Car { String brand; int speed; void drive() { System.out.println(brand + " is driving at " + speed + "km/h"); }}여기서 Car 클래스로 선언되었으며, 자동차 설계도에 해당합니다."브랜드"와 "속도"라는 속성, "drive()"라는 동작이 정의되어 있습니다. 아직 아무것도 만들어지지 않았습니다.이건 마치 설계도일 뿐입니다. 객체객체는 클래스를 기반으로 실제로 만들어낸 구체적인 존재입니다. 설계도를 바탕으로 실제 자동차를 만든 것처럼 객체도..
안녕하세요🖐️ 이번시간에는 정렬 알고리즘 중 하나인 삽입 정렬에 대해 간단히 알아보는 시간을 갖겠습니다~ 삽입 정렬 (Insertion Sort)삽입 정렬은 선택 정렬과 버블 정렬처럼 기본적이면서 이해하기 쉬운 정렬 알고리즘 중 하나입니다. 이 알고리즘은 각 단계에서 배열의 요소를 이미 정렬된 부분과 비교하여, 각 요소가 올바른 위치에 삽입될 수 있도록 합니다. 즉, 하나의 요소를 적절한 위치에 삽입하는 과정을 배열의 모든 요소에 대해 반복하여 전체 배열을 정렬합니다. 삽입 정렬의 작동 방식은 다음과 같은 순서로 진행됩니다. (오름차순 기준)배열의 두 번째 요소부터 처리를 시작하며, 이 요소를 "현재 요소"로 간주합니다.현재 요소를 그 이전의 정렬된 배열 부분과 비교합니다. 현재 요소가 이전 요소..
절차 지향 프로그래밍절차 지향 프로그래밍은 간단히 설명하자면, 이름 그대로 절차에 맞게 프로그래밍을 하는 방식입니다. 즉, 프로그램을 순차적으로 동작시킵니다. 실습 예제프로그램을 순차적으로 동작시키는게 어떤 내용인지 예제와 함께 확인해보겠습니다. TV 조작하기 를 절차 지향적으로 프로그래밍을 실습해보겠습니다! 1대의 TV 조작하기- 실습 예제 -public class ObjectOriented1 { static boolean powerOn = false; static int channel = 1; public static void turnOnTV() { powerOn = true; System.out.println("TV를 켭니다."); } publi..
안녕하세요🖐️ 이번시간에는 정렬 알고리즘 중 하나인 선택 정렬에 대해 간단히 알아보는 시간을 갖겠습니다~ 선택 정렬 (Selection Sort) 선택 정렬은 버블 정렬처럼 간단하고 이해하기 쉬운 정렬 알고리즘 중 하나입니다. 주어진 배열을 처리할 때, 이 알고리즘은 전체 배열을 차례대로 탐색하면서 각 단계마다 남아 있는 요소 중 최솟값을 찾습니다(오름차순 정렬 시). 찾은 최솟값을 현재 위치의 값과 바꿔치기하며, 이러한 절차를 배열이 전부 정렬될 때까지 지속적으로 수행합니다. 선택 정렬의 작동방식을 순서대로 나열하면 아래와 같은 과정을 진행합니다. (오름차순) 배열의 첫 번째 위치를 최소값의 위치로 가정합니다. 현재 위치 이후의 배열에서 실제 최소값의 위치를 찾습니다. 현재 위치의 값과 찾은 최솟값의 ..
안녕하세요🖐️ 이번시간에는 정렬 알고리즘 중 하나인 버블 정렬에 대해 간단히 알아보는 시간을 갖겠습니다~ 버블 정렬 (Bubble Sort) 버블 정렬은 정렬 알고리즘 중 가장 이해하기 쉽고 구현하기 간단한 알고리즘입니다. 하나의 배열이 주어졌을 때, 배열의 각 원소를 순차적으로 비교하고, 인접한 원소끼리의 순서가 잘못되어 있으면 서로 위치를 바꿔주는 과정을 반복합니다. 이 과정을 배열의 길이만큼 반복하면서, 각 반복마다 최소 하나의 원소가 최종 위치로 이동합니다. 버블 정렬의 작동방식을 순서대로 나열하면 아래와 같은 과정을 진행합니다. (오름차순) 배열의 첫 번째 원소부터 시작하여 인접한 원소와 비교합니다. 현재 원소가 다음 원소보다 크면, 두 원소의 위치를 바꿉니다. 다음 인접한 원소로 이동하여 같은..
안녕하세요🖐️ 이번시간에는 알고리즘 개념 중 하나인 복잡도에 대해 간단히 알아보는 시간을 갖겠습니다~ 복잡도 복잡도란 알고리즘의 효율성을 평가하는 기준입니다. 복잡도에는 다음과 같은 종류가 있습니다. 시간 복잡도 (Time Complexity) : 실행에 필요한 시간을 평가한 것 공간 복잡도 (Space Complexity) : 기억 영역과 파일 공간이 얼마나 필요한가를 평가한 것 시간 복잡도 (Time Complexity) me Complexity) 시간 복잡도는 알고리즘을 실행하는 데 필요한 시간이 얼마나 되는지를 추상적으로 표현한 것입니다. 이는 주로 입력 크기에 대한 알고리즘의 실행 시간 증가율로 나타냅니다. 시간 복잡도를 분석할 때는 최악의 경우, 평균적인 경우, 최선의 경우 복잡도를 고려할 수..
안녕하세요🖐️ 이번시간에는 기초 알고리즘 중 하나인 반복문에 대해 간단히 알아보는 시간을 갖겠습니다~ 반복문(루프)이란? 프로그램의 흐름을 반복하는 제어문입니다. 반복문의 종류엔 아래와 같이 여러 가지가 있습니다. 아래 반복문들을 차례대로 배워보겠습니다. while do ... while for while문 while문은 주어진 조건이 성립하는 동안 처리를 반복하여 실행합니다. 실행 전에 주어진 조건이 성립하는지 계속 판단하는데, 이런 구조를 사전 판단 반복 구조 라고 부릅니다. 조건이 true면 계속 반복하고, 조건이 false면 반복을 멈추고 끝냅니다. - 실습 예제 - package com.example.practice; public class Practice02 { // 1부터 n까지 반복하는 w..