본문 바로가기

java49

델타 배열을 이용해 2차원 배열 탐색하기 2차원 배열"행(row)"과 "열(column)" 두 차원을 가진 배열 (논리적 시점) 1차원 배열을 요소로 가지는 배열 (코드 시점) 2차원 배열을 활용하면, 게임의 보드판(예: 오목판, 체스판), 이미지의 픽셀 정보, 수학에서 다루는 행렬, 다양한 그래프, 표 등과 같이 행과 열로 이루어진 데이터를 손쉽게 처리할 수 있다. 델타 배열 2차원 배열에서 순회/탐색을 돕기 위해 선언한 배열. // 4방향 델타 배열(상하좌우) int[] dx = {0,0,-1,1}; int[] dy = {-1,1,0,0}; final int d = 4; // 8방향 델타 배열 (↑↓←→ ↖↗↙↘) int[] dx = {0,0,-1,1,-1,1,.. 2026. 6. 10.
제네릭을 통해 계산기 프로그램의 기능 확장 기존 정수 계산기 public String Calculate(int firstNum, int secondNum, char operSymbol) { int answer; // 더하기 if (operSymbol == '+') { answer = firstNum + secondNum; } // 빼기 else if (operSymbol == '-') { answer = firstNum - secondNum; } // 곱하기 else if (operSymbol == '*') { answer = firstNum * secondNum; .. 2026. 6. 8.
인터페이스(interface) 인터페이스(interface)설계 표준클래스가 따라야할 최소한의 공통 규칙을 정의세부 구현은 각 클래스에 맡김 인터페이스 적용implements 키워드로 활용 가능인터페이스를 구현한 클래스를 구현체라고 함interface Animal { void eat();}class Bird implements Animal { @Override void eat() // 인터페이스 규칙 { System.out.println("곡물을 먹는다"); } void fly() // Bird 클래스만의 기능 { System.out.println("하늘을 난다."); }}class Dog implements Animal { @Override .. 2026. 6. 4.
객체 지향 원칙 1 - 캡슐화(Encapsulation) 캡슐화(Encapsulation)객체의 정보를 외부에서 직접 접근하지 못하게 보호하는 개념캡슐처럼 감싸서 내부를 보호하고 외부로부터 내용물을 숨김접근제어자를 통해 구현 가능 접근 제어자(Encapsulation)클래스, 변수, 메서드, 생성자의 접근 범위를 제한하는 키워드제어자같은 클래스같은 패키지자손 클래스전체publicOOOOprotectedOOO defaultOO privateO public class DataClass { public String publicData; private String privateData; public DataClass() {} // 생성자 public void publicMethod() {} private void.. 2026. 6. 4.
람다(Lambda) 람다익명 클래스를 더 간결하게 표현하는 문법// 람다 표현식Calculator calculator1 = (a, b) -> a + b;// 익명클래스Calculator calculator1 = new Calculator() { @Override public int sum(int a, int b) { return a + b; }}; 사용법@FunctionalInterface // ✅ 함수형 인터페이스 선언public interface Calculator { int sum(int a, int b); // ✅ 오직 하나의 추상 메서드만 선언해야합니다.}public class Main { public static void main(String[] args) { ... .. 2026. 5. 21.
제네릭(Generic) 제네릭(Generic)타입을 미리 지정하지 않고 사용 시점에 유연하게 결정할 수 있는 문법코드 재사용성과 타입 안정성 보장과도하게 사용하면 코드가 복잡해짐 제네릭이 없는 경우함수 재사용 불가능public class Box { private Integer item; // ⚠️ Integer 타입으로 고정 public Box(Integer item) { // ⚠️ Integer 타입으로 고정 this.item = item; } public Integer getItem() { return this.item; }}public class Main { public static void main(String[] args) { // ✅ Intege.. 2026. 5. 20.