본문 바로가기

분류 전체보기213

Class(6)-Polymorphism(다형성) 이번에는 class의 핵심 요소 중 하나인 Polymorphism(다형성, 多形性)에 대해서 알아보겠습니다. 다형성이라는 특성 때문에 부모 클래스 타입의 참조변수로 자식 클래스의 인스턴스를 참조할 수가 있습니다. 지금까지 클래스 타입의 참조변수를 만들 때는 참조변수의 타입과 인스턴스 타입이 일치했습니다. 예를 들어서, 1 2 Movie movie = new Movie(); ForrestGump forrestGump = new ForrestGump(); cs 위와 같은 형태였습니다. 하지만 다형성을 이용하면, 두 클래스가 상속관계라는 전제 하에 부모 클래스의 참조변수로 자식 클래스 인스턴스를 참조할 수가 있습니다. (여기에서는 Movie class 가 부모 클래스, ForrestGump가 자식 클래스 입니.. 2022. 4. 29.
Class(5)-Encapsulation(캡슐화)란? 사용 방법과 이유 OOP에는 inheritance, encapsulation, polymorphism, abstraction 이라는 네가지 핵심개념이 있습니다. Encapsulation도 이 핵심 개념 중 하나에 해당하는데요, 어떠한 의미일까요? 먼저 이름에서 느껴지다시피 무언가 안에 담아 두는 것 같다는 생각이 듭니다. 실제로 encapsulation은 class 내부의 variable(data)들을 method로 감싸서 variable과 method를 하나의 유닛으로 묶어주는 것입니다. 이렇게 되면 variable에 접근하기 위해서는 method를 통할 수 밖에 없게 됩니다. 하나의 유닛으로(capsule) variable를 감싸놓는 이유는 다른 클래스에서 variable에 즉, 데이터에 직접적으로 접근하는 것을 방지.. 2022. 4. 28.
Class(4)-Composition Composition이란 Inheritance(상속)가 class간 부모-자식 관계를 만들어 주었다면, Composition(조합)은 class 들끼리 서로의 구성요소가 될 때 각 class가 가진 fields나 methods를 사용할 수 있도록 하는 방법입니다. "has a" 관계일 때 사용한다고 말하기도 하는데요 (inheritance는 "is a" 관계). 예를 들어서, 고양이와 눈(eyes)의 관계는 무엇일까요? 고양이가 눈을 가지고 있다 (A cat has eyes) 라고 할 수 있겠죠. 고양이가 눈이거나 눈이 고양이인 것은 아닙니다(is a 관계가 아니라는 말입니다). 그러므로 이런 경우에는 inheritance를 사용하기보다는 composition을 사용해야 적절합니다. 이번에는 한 번 Co.. 2022. 4. 27.
Class(3)-Inheritance(상속) 사용하기 다수의 class를 만들어야 하는데, 모든 class가 공통된 속성과 행동을 공유하는 경우라면 inheritance를 사용하여 효율적으로 코드를 작성할 수 있습니다. 정확히는 class 간의 관계가 "is a" 관계일 때 inheritance를 적용할 수 있습니다. 실생활에서 예를 들어보겠습니다. 동물과 고양이는 어떤 관계인가요? 고양이가 동물에 속하는 관계입니다. 즉, 고양이가 동물 (A cat is an animal)이라고 말할 수 있습니다. 이런식으로 class 간의 관계도 동물과 고양이와 동일한 관계라면 inheritance를 사용해주면 됩니다. Class 상속을 하기 위해서는 extends keyword를 사용합니다. 1 2 3 4 5 6 //Volvo class를 만들 때 Car class 상.. 2022. 4. 25.
Class(2)-Constructor-set을 간편하게 인스턴스를 생성할 때 set해주어야 하는 fields가 많으면 일일이 설정해주기가 번거로워지는데, constructor를 사용하면 좀 더 간편하게 set을 할 수 있게 됩니다. Constructor는 object가 생성될 때 한 번만 작동(호출)하는 특수한 method입니다. Class의 object를 생성할 때 보면, Car car = new Car() 와 같은 방식으로 생성하게 됩니다. 이때 new 뒤의 Car() 부분이 사실상 constructor를 호출하는 것입니다. 직접 커스텀 constructor를 생성하려면 해당 class 파일로 가서 아래 코드와 같이 작성하면 됩니다. 1 2 3 public Car() { } cs 보시면 해당 constructor에는 public 키워드만 사용했을 뿐 다른.. 2022. 4. 25.
Class(1)-Class란 & Class 사용하기 1. Class 란? Java는 OOP(Object-oriented Programming, 객체지향) 언어에 속합니다. OOP 즉, 객체지향은 다수의 객체를 만들고 생성한 객체를 사용하여 프로그래밍을 하는 방법입니다. 객체란 실생활 용어로 사물이라고 생각하면 됩니다. 모든 사물이 각각의 특성과 행동(이 물건을 가지고 무엇을 할 수 있는지)을 가지고 있듯이, 각 객체 역시 고유한 특성, 행동과 같은 속성을 가집니다. 예를 들어서, "가방" 이라는 객체는 넓이, 높이, 색상과 같은 특성을 갖을 것이고 물건을 보관하고 물건을 옮기는 등의 행위를 할 수 있습니다. 프로그래밍 언어에서 사용되는 객체 역시 실생활에서 만나는 사물들처럼 독특한 특성과 행동 양상을 갖습니다. 객체지향이론은 발생하는 모든 사건들은 객체들.. 2022. 4. 25.
반응형