목록Object-Oriented Programming (5)
나는개발자니까
자바는 왜 인터페이스를 사용할까? 이 내용은 다중 상속과 관련이 있다! 자바는 다중 상속의 다이아몬드 문제 때문에 다중 상속을 지원하지 않고 대신 C++에는 없는 인터페이스를 사용한다. 하위클래스의 코드를 수정하지 않은 상태로 확장하기 위해서이다. 예를 들어, 스마트폰에서 카메라, 문자, 전화를 실행한다고 해보자. 카메라를 실행하고 문자를 실행하고 전화를 실행하는 것은 다르게 작용한다. 그런데 스마트폰에 애플리케이션이 한개만 있는것이 아니라 여러개 있는데 애플리케이션에 따라 실행의 개념이 달라지면 매우 번거로울 것이다. 그래서 상속과 인터페이스를 사용한다. 단순히 애플리케이션이 실행한다는 인터페이스를 두고 각 애플리케이션이 메서드를 상속 받으면 각 애플리케이션의 실행한다라는 메서드는 수정할 필요가 없다...
자바에서의 다형성은 3가지에서 이야기 수 있다. 1. 오버라이딩과 오버로딩 (기본) 2. 상위 클래스와 하위 클래스 3. 인터페이스와 구현 클래스 1. 오버라이딩과 오버로딩 일단 오버라이딩과 오버로딩의 개념을 정리하고 차이점을 파악하자. 오버라이딩 (overriding) : 같은 메서드 이름, 같은 매개변수 (인자) 목록으로 상위 클래스의 메서드를 재정의 오버로딩 (overloading) : 같은 메서드 이름, 같은 매개변수 (인자) 목록으로 다수의 메서드를 중복 정의 단어의 뜻을 파악하면 좀 더 이해하기 편하다! * 여기서 인자라는 단어는 어떤걸까? 처음에는 인자와 매개변수를 메모리가 저장되는 부분에서 구분하려고 단어를 다르게 한 줄 알았다. 그러나 자바에서의 매개변수 (parameter, param)..
객체지향의 상속은 기존에 알고 있던 상속의 개념과 달리 재사용과 확장이다. 상위 클래스의 특성을 하위 클래스에 상속하고 거기에 더해 필요한 특성을 추가할 수 있다. 재사용 -> 상위 클래스의 특성을 하위 클래스에 상속한다. 확장 -> 거기에 더해 필요한 특성을 추가할 수 있다. 아래 단어들은 동의어지만 정확한 이해를 위해 상위 클래스와 하위 클래스, 슈퍼 클래스와 서브 클래스 용어를 사용하자. (그냥 상속 (X), 재사용, 확장, 세분화 (O)) 부모 클래스 = 상위 클래스 = 슈퍼 클래스 자식 클래스 = 하위 클래스 = 서브 클래스 상속 관계에서 반드시 만족해야 할 문장이 있다. 하위 클래스는 상위 클래스다. 포유류는 동물이다. 고래는 포유류다. 고래는 동물이다. 상속의 개념에서 객체와 클래스를 잘 구..
* 스프링 입문을 위한 자바 객체 지향의 원리와 이해 객체 지향의 4대 특성 1. 캡슐화 : 정보 은닉 2. 상속 : 재사용 3. 추상화 : 모델링 4. 다행성 : 사용 편의 추상화는 모델링이다 "객체 지향의 추상화는 곧 모델링이다." 추상화 : 구체적인 것을 분해해서 관찰자가 관심 있는 특성만 가지고 재조합하는 것 = 모델링 상속은 재사용과 확장이다 객체 지향에서의 상속은 상위 클래스의 특성을 하위 클래스에서 상속하고 필요한 특성을 추가, 확장해서 사용할 수 있다. 부모 클래스 - 자식 클래스 표현보다는 상위 클래스 - 하위 클래스로 이해하는 것이 좋다. 상위 클래스 쪽으로 갈수록 추상화, 일반화되었다고 말하며, 하위 클래스 쪽으로 갈수록 구체화 , 특수화된다고 말한다. 상속은 is a kind of ..
* 스프링 입문을 위한 자바 객체 지향의 원리와 이해 자바 프로그램의 개발과 특성 자바프로그램을 개발하기 위해서는 JDK, JRE, JVM이 필요하다. JDK (Java Development Kit) - 자바 개발 도구 : JVM용 소프트웨어 개발 도구 JRE (Java Runtime Environment) - 자바 실행 환경 : JVM용 OS JVM (Java Virtual Machine) - 자바 가상 기계 : 가상의 컴퓨터 자바가 이런 구조로 되어 있는 이유는 개발할때 각 플랫폼용으로 배포되는 설치 파일을 따로 준비할 필요가 없게 하기 위함이다. 개발자가 사용 중인 플랫폼에 설치된 JVM용으로 프로그램을 작성하고 배포하면 플랫폼이 다르더라도 프로그램을 구동할 수 있다. 이런한 자바의 특성을 Writ..