Java24 스트림(Stream) 스트림(Stream)데이터를 효율적으로 처리할 수 있는 흐름선언형 스타일로 가독성이 뛰어남데이터 준비 -> 중간 연산 -> 최종 연산 순으로 처리됨 for 문 vs 스트림[리스트 각 요소에 *10 처리]를 하는 코드 비교for문public class Main { public static void main(String[] args) { List arrayList = new ArrayList(List.of(1, 2, 3, 4, 5)); List ret = new ArrayList(); for (Integer num : arrayList) { int multipliedNum = num * 10; /.. 2026. 6. 4. 객체 지향 원칙 4 - 다형성(Polymorphism) 다형성하나의 타입으로 여러 객체를 다룰 수 있는 객체지향의 특징추상 계층을 활용해서 다형성을 구현 가능 인터페이스를 활용한 다형성public interface GameObject { void exist();}public interface Movable extends GameObject { void move();}public class Monster implements Movable { @Override public void move() { System.out.println("왼쪽으로 간다."); } @Override public void exist() { System.out.println("몬스터가 존재한다."); } .. 2026. 6. 4. 객체 지향 원칙 3 - 추상화 추상화불필요한 정보를 제거하고 본질적인 특징만 남기는 것계층적인 특징을 활용해서 유지 보수성이 좋아짐 인터페이스 상속을 활용한 추상 계층 표현public interface GameObject // 오브젝트{ void exist(); // 구현 여부}public interface movable implements GameObject // 움직일 수 있는 오브젝트{ void move(); // 움직임 정보}public class Monster implements movable { @Override public void exist() { System.out.println("몬스터가 존재한다."); } @Override public void move() .. 2026. 6. 4. 객체 지향 원칙 2 - 상속(Inheritance) 상속(Inheritance)클래스 간의 관계를 부모(상위), 자식(하위)로 바라보는 개념재사용, 확장이 가능extends 키워드를 사용해서 상속 관계를 구현 재사용성부모 클래스의 내용을 물려받아 그대로 재사용public class Parent { public String name = "부모"; public int age = 60; public void introduce() { System.out.println("부모 입니다."); }}class Child extends Parent {}public class Main { public static void main(String[] args) { Child child = new Child().. 2026. 6. 4. 인터페이스(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. 이전 1 2 3 4 다음