1. 사람들이 Optional 쓰는 방법 Optional이 나온 이유부터 알아보자. 이유를 모르고 쓰는 사람들은 이렇게 말한다. "null을 반환하면 그 무서운 NPE가 뜨기 때문에, Optional로 null을 가지는 변수, 또는 객체를 Optional로 묶어요. 그럼 NPE가 안떠요" 자바로 개발하면서 한 번이라도 NullPointerException을 겪은 사람은 손을 들어보자. NPE는 다양한 예외 중에서도 가장 악질로 유명한 예외이다. 그렇기에 NPE를 피하기 위해서 Optional을 사용하는 사람은 드물지 않을 것이다. 하지만 당연히 Optional이 나온 이유는 NPE를 피하기 위함이 아니다. 그럼 NPE가 얼마나 무섭길래 Optional을 쓰는 이유를 모르면서까지 Optional을 쓰며 피..
객체지향개념에서 중요한 특징 중 하나인 다형성에 대해서 알아보겠다. 다형성은 상속과 깊은 관계가 있어 상속에 대해 충분히 알고 있어야 한다. 1. 다형성이란 ? 프로그램적으로 말하자면 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하는 것이다. 2. 다형성의 조건 사실 다형성에 조건은 없지만 허용되는 것과 허용되지 않는 것들이 있다. 조상타입의 참조변수로 자손타입의 인스턴스를 참조할 수 있다. 자손 타입의 참조변수로 조상타입의 인스턴스를 참조할 수 없다. 참조변수가 사용할 수 있는 멤버의 개수는 인스턴스의 멤버 개수보다 같거나 적어야 한다. 이 세가지는 알고보면 다 같은 말이다. 참조변수가 사용하는 멤버의 개수가 인스턴스 멤버 개수보다 많다고 했을 때, 인스턴스 멤버에는 존재하지 ..
1. 오버로딩이란 ? 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 '메서드 오버로딩' 또는 간단히 '오버로딩'이라고 한다. 2. 오버로딩의 조건 같은 이름의 메서드를 정의한다고 해서 무조건 오버로딩인 것은 아니다. 오버로딩이 성립하기 위해서는 다음과 같은 조건을 만족해야한다. 메서드 이름이 같아야 한다. 매개변수의 개수 또는 타입이 달라야 한다. 위의 조건을 만족하지 못한 메서드는 중복으로 컴파일 에러가 발생한다. 오버로딩된 메서드들은 매개변수에 의해서만 구별될 수 있으므로 반환 타입은 아무런 영향을 주지 못한다. 간단히 말하면 이름은 같지만 매개변수가 다르면 된다. 3. 오버로딩의 예 오버로딩의 예로 가장 대표적인 것이 println메서드이다. 지금까지 아무런 생각없이 출력으로만 써왔다..
자바를 공부하고 스프링으로 넘어갈 때, 스프링에서 나오는 자바 문법과 개념에 대해서 한번 더 확실하게 정리를 하면 기억에 잘 남을거 같아 적는다. 자바 문법은 다 안다고 치고 객체지향부터 알아보겠다. 이 글을 보면서 부가적인 내용들도 중요하지만 단어의 의미에 좀 더 집중해서 봤으면 한다. 1. 객체지향 언어 란 ? 객체지향이란 말은 많이 들어봤으나 의미를 말하려 하면 생각이 나지 않는 경우가 많다. 객체지향언어는 완전히 새로운 프로그래밍이 아니라, 기존의 프로그래밍 언어에 몇가지 새로운 규칙을 추가한 형태이다. 이러한 규칙을 이용해서 코드 간의 서로 관계를 맺어 유기적으로 프로그램을 구성하는 것이 가능하다. 객체지향언어의 주요 특징은 다음과 같다. 1-1. 코드의 재사용성이 높다. 새로운 코드를 작성할 ..
- Total
- Today
- Yesterday