목록클래스 (7)
AiPE
객체지향에서의 인터페이스가 무엇인지에 대해 내가 들었던 자바 강의 선생님께서 좋은 설명을 해 주셔서 이를 그대로 가져왔다. "객체지향은 프로그램의 각 부분을 부품화하는 설계 방식이라고 할 수 있다."는 명제를 전제하고 읽어보자. 잘 만들어진 부품이라면 부품과 부품을 서로 교환 할 수 있어야 한다. 예를 들어보자. 집에 있는 컴퓨터에 A사의 모니터를 연결하다가 B사의 모니터를 연결 할 수 있다. 또, 집에 있던 모니터에 A사의 컴퓨터를 연결해서 사용하다가 새로운 컴퓨터를 구입하면서 B사의 컴퓨터를 연결 할 수 있다. 모니터와 컴퓨터는 서로가 교환관계에 있는 것이다.이것은 모니터와 컴퓨터를 연결하는 케이블의 규격이 표준화 되어 있기 때문에 가능한 일이다. 컴퓨터와 모니터를 만드는 업체들은 HDMI의 규격을 ..
1. 캐스팅(Casting)의 정의일반적으로 캐스팅(Casting)이란 명시적 형 변환과 동일한 용어로 쓰인다.즉, 프로그래머가 (type) 연산자를 사용하여 의도적으로 자료의 형식을 바꿀 때 이를 특별히 캐스팅이라고 한다.캐스팅은 업 캐스팅과 다운 캐스팅으로 나눌 수 있다. (명시적 형 변환과 묵시적 형 변환에 대해서는 아래 포스팅 참조)https://xibbal-lab.tistory.com/69 명시적 형 변환과 묵시적 형 변환명시적 형 변환(Explicit Type Conversion)과 묵시적 형 변환(Implicit Type Conversion)은 데이터 유형을 다른 형식으로 변환할 때의 두 가지 방법이다. 정수 데이터를 소수(float)데이터로 변환하는 등, 데이터xibbal-lab.tisto..
1. 추상 클래스(Abstract Class)와 추상 메서드(Abstract Method)의 정의 추상 클래스(Abstract Class)는 하나 이상의 추상 메서드(Abstract Method)를 포함하는 클래스이다. 추상 메서드는 선언만 되어 있고 구현이 되어 있지 않은 메서드를 말한다. 쉽게, "응 난 이런 메서드를 만들었어." "그래서 이 메서드가 무슨 기능인데?" "(아직) 없어" 이 상태라는 것이다. 따라서 추상 메서드는 당연하게도 직접 인스턴스화 할 수 없다. (기능이 없어 실행하라고 해도 뭘 실행해야 할지 모른다.) 추상 메서드를 인스턴스화(구현)하려면 해당 추상 메서드를 구현하는 하위 클래스를 만들어야 한다. 즉, 해당 추상 메서드를 설명해주는 하위 클래스 및 메서드들이 있어야 한다. 그..
Java에서의 final 키워드는 클래스, 메서드, 변수 앞에서 사용될 수 있다. 공통적으로 "~~가 불가하다"는 의미를 나타내지만, 어디 앞에 쓰이느냐에 따라 약간의 의미 차이를 보인다. 1. 클래스 앞에서 사용되는 경우 해당 클래스가 상속될 수 없다는 것을 의미한다. 이는 클래스가 확장될 필요가 없거나, 확장될 경우 원치 않는 동작을 방지하려는 경우에 유용하다. Ex. 협업을 하거나 대규모 프로젝트를 개발할 때 .. 개발자 A는 임의의 클래스가 다른 클래스에 의해 확장되거나 상속되지 않기를 바랄 수 있다. 클래스 A를 상속하는 클래스가 많아지면 예기치 않은 오작동이 발생할 수도 있기 때문이다. 혹은, 개발자 A 이외의 다른 개발자들이 이 클래스를 상속하는 것을 원치 않을 수 있다. 이러한 경우에도 f..
클래스의 속성에 접근하고 값을 다루기 위한 메서드인 Getter와 Setter에 대해 알아보자. Getter와 Setter는 객체지향 프로그래밍에서 클래스의 속성(필드)에 접근하고 값을 설정하기 위한 메서드이다. 주로 캡슐화(encapsulation)를 구현하는 데 사용된다. 캡슐화(encapsulation)란? 서로 연관된 데이터와 그 데이터를 다루는 메서드들을 하나로 묶는 행위이다. 이를 통해 캡슐 내의 세부적인 처리과정과 데이터를 숨길 수 있게 된다. 1. Getter 메서드 Getter는 클래스의 필드 값을 반환하는 메서드이다. 클래스의 필드 값이란? 클래스 내에 있는 변수를 의미한다. 클래스 A내에 변수 b, c, d .. 가 존재한다면, b는 A의 필드 값 중 하나가 된다. 단, 클래스 A 내..
객체지향의 핵심 개념 중의 하나인 상속(Inheritance)에 대해 알아보자. 1. 상속(Inheritance)이란? Java에서는 하나의 클래스가 존재할 때, 이 클래스의 속성(변수와 메서드)를 다른 클래스에서 그대로 물려받아 사용할 수 있다. 이렇게 하나의 클래스가 다른 클래스에게 자신의 속성을 물려주는 행위 자체를 상속이라고 부른다. 상속을 해주는 클래스를 부모 클래스, 상속을 받는 클래스를 자식 클래스라고 부른다. 부모 클래스가 더 큰 집합이므로, 자식 클래스는 부모 클래스의 모든 속성을 일단 그대로 물려받는다. 단, 자식 클래스는 부모 클래스가 가지지 못하는 속성을 추가하여 사용할 수 있다. 그렇다면 상속이 왜 객체지향의 핵심적인 특성이며, 코드를 효율적으로 해 주는 장치일까? 이를 알아보기 ..