본문 바로가기

Java18

Java. Generics 정리 Generics 란? 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크(compile-time type check)를 해주는 기능입니다. 객체의 타입을 컴파일시에 체크해주기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움이 줄어듭니다. 타입의 안정성을 높인다는 것은 의도하지 않은 타입의 객체가 저장되는 것을 막고, 저장된 객체를 꺼내올 때 원래의 타입과 다른 타입으로 잘못 형변환 되어 발생할 수 있는 오류를 줄여준다는 것입니다. List list = new ArrayList(); list.add(new Integer(1)); int a = (Integer)list.get(0); 위와 같은 ArrayList와 같은 컬렉션 클래스에는 다음과 같은 단점이 있습니다. 컬렉션 클.. 2020. 11. 3.
자바 OOP(객체 지향 프로그래밍 feat.착각 지향 프로그래밍) 자바의 장점은 역시 객체지향 언어라는 점입니다. 저는 자바를 사용하면서 객체 지향 프로그래밍을 하고있다 생각했습니다. 하지만 책에서 다음과 같은 글을 봤습니다. 객체 지향 프로그램의 장점을 얻으려면 단순히 자바나 C++같은 객체 지향 언어로 프로그래밍 하면 되는게 아닌 객체 지향 언어로 프로그래밍 하는것과 더불어 객체 지향 패러다임이 내포된 분석, 설계, 구현, 테스트를 함께 해야합니다. (분석, 설계, 구현, 테스트에 대해서는 아래쪽에서 설명하겠습니다.) 하지만 단순히 자바를 사용해 프로그래밍을 한다고 객체 지향 프로그래밍의 장점을 얻을 수 있다는 것은 아니라는걸 깨닫고 열심히 객체 지향 프로그래밍을 한다고 생각했던 자신이 부끄러웠습니다. 먼저 절차적 프로그래밍 (Procedure Programming.. 2020. 7. 19.
자바의 추상 클래스와 인터페이스 신입 개발자의 면접에 대해 알아보다 기술면접에서 자바에는 추상 클래스 (abstract Class) 와 인터페이스(interface) 의 차이 및 존재 이유를 설명해주세요. 분명 두 개념은 알지만 차이점 이라고 하니 숨이 턱.. 추상 클래스는 클래스 내 '추상 메소드' 가 하나 이상 존재하거나 abstract 로 정의된 경우 입니다. 예를 들어 이런식으로 코드를 짤 수 있습니다. abstract class A () { // 추상 메소드 public abstract int a(); // 일반 메소드 public int b() { System.out.println("methodB"); } } 인터페이스는 모든 메소드가 추상 메소드인 경우 입니다. (물론 자바 8 이상에서는 default 키워드를 이용해 일반.. 2020. 7. 19.