티스토리 뷰

안녕하세요. 구스입니다.


요즘 LabVIEW 객체지향 프로그래밍(LVOOP)에 대해서 공부를 하고 있는데요. 관련 내용 지속적으로 올릴려구요. 


LabVIEW 객체지향 프로그래밍은 기존의 C++, JAVA와는 조금 다른 개념으로 객체 지향 프로그래밍 개념을 사용하고 있습니다. 하지만 유지보수 및 확장성이 높은 코드에 대한 OOP의 목적은 동일합니다. 


이 글에서는 클래스와 객체에 대한 이해를 해보고, 다른 언어와 LabVIEW 객체지향 언어에서의 클래스와 객체에 대한 차이점을 알아보도록 하겠습니다.


그럼 먼저 클래스와 객체가 무엇인지 살펴봅시다. 


클래스란?


실 세상에서의 있는 오브젝트(객체)의 설계도이라고 볼 수 있습니다. 차를 예로 든다면 차의 공통적인 특성과 기능을 설계할 수 있는데 이를 Car 클래스라 부릅니다. 


객체란?


객체란 우리 주변에서 볼 수 있는 모든 대상에 대한 모델링한 것을 의미합니다. 모델링에 대한 설계도를 클래스라 볼 수 있습니다. 우리 주위에서 볼 수 있는 다양한 대상들이 객체가 될 수가 있는데, 차, 개, 휴대폰, 사람와 같이 식별이 가능한 대상을 모두 객체로 디자인할 수 있습니다. 


즉 설계도를 이용하여 실질적인 사물을 만드는 과정을 클래스를 객체로 생성한다고 할 수 있습니다. 

클래스를 객체로 만드는 과정을 인스턴스화 한다고 합니다. 


객체에는 상태와 행동에 대한 값을 가지는데, 상태를 변수(프로퍼티), 행동을 메소드로 나타낼 수 있습니다. 


예를 하나 들어봅시다.

차라는 클래스를 하나 만들었습니다. 차라는 클래스에는 바퀴 수, 색상과 같은 프로퍼티와 달리다, 멈추다와 같은 메소드로 구분을 할 수 있습니다. 


이를 C# 형태로 Car 클래스 구현을 하면 아래와 같습니다.


public class Car

{

private int nCarColor; // 프로퍼티

private int nNumberOfWheels


public void Run() { } // 메소드

public void Stop() { }

}


Car 클래스는 벤츠, BMW, 아우디와 같은 객체로 구성을 할 수도 있습니다.

위의 Car 클래스를 각자의 객체로 생성하는 방법은 아래와 같습니다. 


Car bmw = new Car(); // BMW 객체 생성

Car mercedes =  new Car() // 벤츠 객체 생성

Car audi = new Car() // 아우디 객체 생성 


자 그럼 클래스와 객체에 대해서 알아보았는데요. LabVIEW에서는 클래스 구성이 어떻게 되는지 알아봅시다. 


LVOOP에서 랩뷰 클래스(lvclass 가 클래스)는 아래와 같이 구성이 됩니다. 


랩뷰 클래스는 lvclass 확장자로 구성이 되며, lvclass는 ctl과 vi 파일로 구성이 됩니다. ctrl은 C# 클래스의 속성 부분을 vi는 메소드 부분을 처리합니다. lvclass에서 메소드를 추가하기 위해서는 매번 vi를 생성해야 하며, 프로퍼티의 경우는 Vehicle.ctl에 컨트롤을 추가하면 됩니다.




LabVIEW에서 클래스를 객체로 생성하는 방법은 아래와 같습니다. 

프로젝트 탐색기에 만들어진 lvclass파일을 Drag & Drop 하여 블록다이어그램에만 가져오면 아래와 같이 내부적으로 new 생성자를 이용하여 객체가 생성이 됩니다. 


lvclass를 블록다이어그램에 하나더 가져가게 되면 하나의 객체가 추가적으로 생성이 됩니다. 




이 글에서는 클래스와 객체의 차이에 대해서 알아보고, LabVIEW 객체지향프로그래밍에서는 어떠한 차이점이 있는지 살펴보았습니다. 

그럼 이만 줄이겠습니다.


이 글이 도움이 되셨으면 아래의 하트를 눌러주세요.



댓글