Java/JAVA17
-
[JAVA] - 1.8 -> 17 버전 업그레이드 Base64오류Java/JAVA17 2025. 6. 27. 10:55
java.lang.NoClassDefFoundError: java/util/Base64 at com.example.Base64Test.encode(Base64Test.java:10) 원인: JDK 8 이상에서 지원되는 java.util.Base64 클래스를 찾을 수 없다는 의미→ JDK 설정이 잘못되었거나, 빌드 시 JDK 1.7 이하 대상으로 컴파일한 결과를 JDK 17에서 실행 중일 때 발생해결: javac와 java 둘 다 JDK 17을 참조하고 있는지 확인 java.lang.NoSuchMethodError: java.util.Base64.getEncoder()Ljava/util/Base64$Encoder; at com.example.Base64Test.encode(Base64Test.java:12..
-
JAVA - Generic을 사용해야하는 이유Java/JAVA17 2025. 6. 12. 11:25
Generic을 사용해야하는 이유 우선 Circle,과 Rectangle에 대한 코드구성부터 알아보자.0. 도형 클래스 정의// Shape.javapackage generic.exShape;public abstract class Shape { private String name; public Shape(String name) { this.name = name; } public String getName() { return name; } public abstract double getArea(); public abstract void draw();}// Rectangle.javapackage generic.exShape;public class Rectangle extends..
-
JAVA - GENERIC 사용방법, 사용이유 파헤치기Java/JAVA17 2025. 6. 10. 15:12
제네릭이란 무엇인가?제네릭의 기본 문법// 클래스를 정의할 때 타입 매개변수 T 선언public class GenericBox { private T value; public void set(T value) { this.value = value; } public T get() { return value; }}T는 Type Parameter(타입 매개변수)의 관례적인 이름입니다.실제 사용할 때는 GenericBox처럼 타입 인자를 지정해 주면, 그 순간부터 T가 Integer로 고정돼요.GenericBox strBox = new GenericBox(); strBox.set("Hi"); // OKString s = strBox.get(); ..
-
JAVA - 다형성, 추상메서드, 인터페이스 사용하는 이유Java/JAVA17 2024. 11. 12. 23:24
다형성과 오버라이드(Override)다형성(Polymorphism)은 상위 클래스 타입으로 하위 클래스 객체를 참조하여, 같은 메서드 호출이지만 하위 클래스의 구현에 따라 다르게 동작하도록 하는 객체지향의 특징입니다. 다형성을 구현하기 위해 자바에서는 메서드 오버라이드를 사용합니다.다형성에서의 문제점: 오버라이드 누락다형성 구현 시, 부모 클래스에서 정의된 메서드를 자식 클래스에서 재정의해야 하는데, 이 재정의(오버라이드)를 빼먹을 가능성이 있습니다.이를 방지하기 위해, 부모 클래스에서 반드시 구현해야 할 메서드는 추상 메서드로 선언하고, 이를 포함한 부모 클래스는 추상 클래스로 정의하여 자식 클래스에서 오버라이딩을 강제합니다.추상 클래스와 순수 추상 클래스추상 클래스(Abstract Class): 하나..
-
JAVA - 다형성 OverrideJava/JAVA17 2024. 11. 12. 10:49
업캐스팅과 다운캐스팅은 **오버라이드(Override)**와 함께 자주 사용됩니다. 오버라이딩은 상위 클래스의 메서드를 하위 클래스에서 재정의하는 것이며, 이를 통해 다형성(Polymorphism)을 구현할 수 있습니다. 업캐스팅을 통해 상위 클래스 타입으로 객체를 참조할 때, 오버라이드된 하위 클래스의 메서드가 호출됩니다. 다운캐스팅은 하위 클래스에만 있는 메서드나 필드에 접근하기 위해 사용됩니다. 예시 코드class Animal { void sound() { System.out.println("Animal makes a sound"); }}class Dog extends Animal { @Override void sound() { System.out.pr..
-
JAVA - 다형성 (업케스팅, 다운케스팅, instanceof)Java/JAVA17 2024. 11. 12. 09:57
자바에서 업캐스팅(Upcasting)과 다운캐스팅(Downcasting)은 객체지향 프로그래밍에서 객체의 타입을 변환하는 과정입니다.업캐스팅 (Upcasting)업캐스팅은 하위 클래스 객체를 상위 클래스 타입으로 변환하는 것입니다. 자바에서는 업캐스팅이 자동으로 수행되며, 상위 클래스 타입의 변수에 하위 클래스 객체를 할당할 때 이루어집니다. 업캐스팅을 통해 상위 클래스에서 정의된 메서드만 접근할 수 있습니다. 예시코드:class Animal { void sound() { System.out.println("Animal makes a sound"); }}class Dog extends Animal { void sound() { System.out.println..