[개발] 지식/Java(6)
-
Java 버전별 차이와 특징
Java 버전 특징 Java는 하위 호환성이 높다 Java 5 또는 8버전이 8~17버전의 가상환경에서 구동되는 것이 보장된다 이를 backward compatible(하위 호환성) 이라고 한다. 반대로 8버전에서 사용할 수 없는 17 기능을 사용한다면 컴파일되지 않는다. java.lang.UnsupportedClassVersionError 가장 변경 사항이 큰 8버전을 기준으로 학습하고, 이후 버전의 변경사항만 알아두는 것으로 충분 배포(Distribution) OpenJDK 프로젝트 이는 배포판이 아닌 소스 자체 소스를 기반으로 빌드를 만들어 배포할 수 있지만 호환성 인증을 확보하기 어려움 OpenJDK 빌드(오라클), OracleJDK OracleJDK는 유료, OpenJDK는 무료 Oracle J..
2023.06.15 -
오버라이딩(Overriding)과 오버로딩(Overloading)
오버로딩 (Overloading) 조건 부모 클래스의 메서드를 자식 클래스에서 재정의 메서드의 이름이 같고, 매개변수(개수, 타입)이 달라야 한다. 리턴 타입과 접근제어자는 상관없다. 예시 class Calculator { public int add(int a, int b) { return a + b; } public double add(double a, double b) { return a + b; } public int add(int a, int b, int c) { return a + b + c; } } public class Main { public static void main(String[] args) { Calculator calculator = new Calculator(); System...
2023.06.13 -
객체지향의 설계원칙(SOLID)
좋은 설계란 시스템에 새로운 요구사항이나 변경이 있을 때 영향을 받는 범위가 적은 구조를 의미한다. 그래서 예상치 못한 변경이 발생하더라도 유연하게 대처라히 구이해 확장성 있는 시스템 구조화가 필요하다. SOLID 객체 지향 원칙을 적용하면 코들르 확장하고 유지 보수 관리가 쉬워지며, 불필요한 복잡성을 제거해 리팩토링에 소요되는 시간을 줄임으로써 생산성을 높일 수 있다. SOLID는 객체지향 설계 5대원칙이라고 부르며 SRP, OCP, LSP, ISP, DIP 앞글자를 따서 SOLID 원칙이라고 부른다. SRP (Single Responsibility Principle) : 단일책임원칙 모든 클래스는 가각 하나의 책임만 가진다. → 클래스는 그 책임을 완전히 캡슐화해야한다. 하나의 클래스는 하나의 기능을..
2023.06.12 -
소수점 Format (DecimalFormat)
0 : 값이 0이면 0으로 표시. # : 값이 0이면 표시하지 않음. Float val = 12.2345324; DecimalFormat form = new DecimalFormat("#.###"); String dVal = form.format( val ); System.out.println( dVal );
2018.03.06 -
Comparator
정렬할 때 정렬기준을 새로 정의하거나, 객체들의 정렬이 필요한 경우가 있다. 예를 들어 다음과 같은 클래스가 있을때 static class obj{ public obj(int x, char dir, int num){ this.x = x; } int x; }; x의 순서대로 객체를 정렬하고 싶다면 아래와 같이 사용한다. Arrays.sort(A, 1, N+1, new Comparator(){ public int compare(Ant a, Ant b){ return a.x - b.x; } }); 이는 a.x와 b.x를 비교하여 오름차순으로 정렬하겠다는 의미이다.마찬가지로 내림차순으로 정렬하고 싶다면 b.x - a.x로 바꾸면 된다.
2017.01.13 -
Overriding 과 Overloading의 차이
오버로딩(Overloading) 하나의 클래스 내에서 이름이 동일한 함수를 여러개 정의 하는 것.하지만 파라미터의 개수와 타입이 달라야 한다. 오버라이딩(Overriding)함수를 재정의 하는 것. 주로 클래스를 상속받거나 인터페이스를 구현할 때 기존에 존재하던 함수의 내용을 재정의 하는 것.함수명, 파라미터, 리턴타입까지 모두 동일해야 한다. 정리구분 오버로딩 오버라이딩 메소드 이름 동일 동일 매개변수, 타입 다름 동일 리턴 타입 상관없음 동일
2016.09.18