이 공간은 개인 공부를 통해 얻은 정보를 체계적으로 정리하고 공유하는 곳입니다. 학습한 내용, 발견한 지식, 그리고 문제 해결 방법 등을 기록하여 나만의 학습 자료를 구축하고, 필요할 때 쉽게 참고할 수 있는 유용한 자원으로 활용할 수 있도록 합니다.
equals() - 동일성과 동등성 Object 는 동등성 비교를 위한 equals() 메서드를 제공한다. 자바는 두 객체가 같다라는 표현을 2가지로 분리해서 제공한다. 동일성(Identity): == 연산자를 사용해서 두 객체의 참조가 동일한 객체를 가리키고 있는지 확인. 동등성(Equality): equals() 메서드를 사용하여 두 객체가 논리적으로 동등한지 확인. 단어 정리 "동일"은
Object 와 OCP 만약 Object 가 없고, 또 Object 가 제공하는 toString() 이 없다면 서로 아무 관계가 없는 객체의 정보를 출력하기 어려울 것이다. 여기서 아무 관계가 없다는 것은 공통의 부모가 없다는 뜻이다. 아마도 다음의 BadObjectPrinter 클래스와 같이 각각의 클래스마다 별도의 메서드를 작성해야 할 것이다. package lang.object.tostring;
Object.toString() 메서드는 객체의 정보를 문자열 형태로 제공한다. 그래서 디버깅과 로깅에 유용하게 사용된다. 이 메서드는 Object 클래스에 정의되므로 모든 클래스에서 상속받아 사용할 수 있다. 코드로 확인해보자. package lang.object.tostring; public class ToStringMain1 { public static void main(String[] args) { Object object = new Object(); String string = object.toString(); // toString()
Object 다형성 Object 는 모든 클래스의 부모 클래스이다. 따라서 Object 는 모든 객체를 참조할 수 있다. 예제를 통해서 Object 의 다형성에 대해 알아보자. Dog 와 Car 은 서로 아무런 관련이 없는 클래스이다. 둘다 부모가 없으므로 Object 를 자동으로 상속 받는다. package
java.lang 패키지 소개 자바가 기본으로 제공하는 라이브러리(클래스 모음) 중에 가장 기존이 되는 것이 바로 java.lang 패키지이다. 여기서 lang 은 Language(언어)의 줄임말이다. 쉽게 이야기해서 자바 언어를 이루는 가장 기본이 되는 클래스들을 보관하는 패키지를 뜻한다. java.lang 패키지의 대표적인 클래스들 Object: 모든 자바 객체의 부모 클래스 String: 문자열 Integer, Long,
좋은 객체 지향 설계 원칙 중 하나로 OCP 원칙이라는 것이 있다. Open for extension: 새로운 기능의 추가나 변경 사항이 생겼을 때, 기존 코드는 확장할 수 있어야 한다. Closed for modification: 기존의 코드는 수정되지 않아야 한다. 확장에는 열려있고, 변경에는 닫혀 있다는 뜻인데, 쉽게 이야기해서 기존의 코드 수정 없이 새로운
다형성 - 역할과 구현 예제 다형성 역하과 구현 예제 1 앞서 설명한 내용을 더 깊이있게 이해하기 위해, 간단한 운전자와 자동차의 관계를 개발해보자. 먼저 다형성을 사용하지 않고, 역할과 구현을 분리하지 않고 단순하게 개발해보자. Driver 는 K3Car 를 운전하는 프로그램이다. package
객체 지향 프로그래밍 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 유연하고,
클래스와 인터페이스 활용 이번에는 클래스 상속과 인터페이스 구현을 함께 사용하는 예를 알아보자. AbstractAnimal 은 추상 클래스다. sound(): 동물의 소리를 내기 위한 sound() 추상 메서드를 제공한다. move(): 동물의 이동을 표현하기 위한 메서드이다. 이 메서드는 추상 메서드가 아니다. 상속을 목적으로 사용된다.
인터페이스 - 다중 구현 자바가 다중 상속을 지원하지 않은 이유 - 복습 자바는 다중 상속을 지원하지 않는다. 그래서 extend 대상은 하나만 선택할 수 있다. 부모를 하나만 선택할 수 있다는 뜻이다. 물론 부모가 또 부모를 가지는 것은 괜찮다. 다중 상속 그림 만약 비행기와