프로그래밍
-
[Java Overriding] 오버라이딩과 다형성프로그래밍/Java 2022. 3. 20. 10:50
오버라이딩(Overridng) 오버라이딩은 상속관계에서 하위 클래스가 상위 클래스의 함수를 재정의 하여 사용하고 싶을 때 사용한다. 오버라이딩은 상속을 받은 객체에서 함수위에 @Override이라는 표시를 해주어야 하며, 상위 객체의 함수 명과 형식이 똑같아야 사용가능하다. 다른경우 다른 함수로 취급된다. 상속관계에서 객체를 생성할 때 형변환 하여도 new에 적힌 객체의 함수가 호출이 된다.(가상 메서드 활용하기 때문) 재정의 하지 않고 그냥 동일하게 사용하고 싶다면 super.함수()를 사용한다. 그런데 굳이 이렇게 사용하지 않는다. 예제 Customer라는 객체 클래스에서 CalcPrice라는 함수를 재정의 하여 사용해보자. public class Customer { protected int cust..
-
[Java ] 클래스 상속 및 상속을 사용하는 이유프로그래밍/Java 2022. 3. 20. 10:37
상속 상속이란? 미리 정의된 내용을 하위 클래스에서 받아서 재정의 및 재사용하는 행위를 일컸는다. JAVA에서 상속 클래스 하나당 한번씩만 상속이 가능하다. 여러번 상속받는 개념은 인터페이스에서 가능하다. 상속에서 구현할 내용은 상위 클래스 속성을 private 을 사용하지 않고 같은 패키지나 하위 클래스에서 사용가능한protected를 사용한다. 상위 클래스의 내용을 재정의 할 때는 super()로 정의 한 다음 작성하지 않는 경우 JVM에서 임의로 컴파일 한다. 상속받는 하위 클래스에서 생성자는 기본적으로 묵시적 생성이 되지만, 변화가 있을 경우 명시적으로 표현해 주어야한다. 고객관리 프로그램 예제 상품을 파는 쇼핑몰에서 Customer라는 객체가 있고 이는 일반 고객이다. Customer라는객체를 ..
-
[Java 객체지향 입문 ] 객체간의 협력프로그래밍/Java 2022. 3. 17. 13:07
객체간의 협력이란? 저는 객체간의 협력이 일상생활에서 사용되는 협력관계를 코드로 구현하기 위한 노력이라고 생각합니다. 바로 예로 보시는게 이해하기 빠를 것같습니다. 학생이 도서관에서 2권의 책을 빌렸다고 생각해 봅시다. 그럼 이 부분을 코드로 구현하기 위해서는 학생, 도서관이라는 객체가 필요 하며 둘다 책이라는 속성이 필요 합니다. 객체를 만든 코드를 보면 아래와 같이 작성 할 수 있습니다. //Student.java public class Student{ String studentName; int bookCount; public Student(String studentName, int bookCount) { this.studentName = studentName; this.bookCount = book..
-
[Java] 객체지향언어 입문프로그래밍/Java 2022. 3. 16. 19:30
목차 객체란? java 객체지향언어의 클래스 클래스 내용 표시조건 생성자, 인스턴스, 함수, 멤버변수, 지역변수 객체란? 객체는 일상생활에서 표현 할 수 있는 단위라고 생각하고 있습니다. 학생이 도서관을 가서 3권의 책을 빌렸다. 라는 문장이 있을 때 학생, 도서관, 책이라는 것이 객체로 볼 수 있습니다. java 객체지향언어의 클래스 객체 클래스를 만들때 객체의 내용을 파악하고 그 안에 표기해야할 필요한 정보들(이하 속성들(=필드))을 정의하여 사용하는 것이라고 생각하시면 됩니다. 학생을 예로 들면 학생이라는 클래스가 만들 수 있고, 그 안에 학생번호, 학생이름, 성별, 나이, 빌린책id 등이 속성으로 가질수 있습니다. //클래스 public class Student { //속성(멤버 변수) int s..
-
python property 사용하기프로그래밍/Python 2022. 3. 12. 16:35
안녕하세요 까치입니다. 이번에는 python 내장함수 property 데코레이터에 대해 알아보겠습니다. property 예시로 클래스를 이용할때는 __init__함수를 사용하여 생성자를 만들어줍니다. 이부분은 다 아실거라 생각고 넘어 가겠습니다. 안에 필드명을 name, age, grade로 설정 하였습니다. class Student: def __init__(self, name, age, grade): self.name = name self.age = age self.grade = grade self의 name, age , grade를 담아 객체를 만들었을 때 내용이 담기도록 설정 하였습니다. 여기서 그럼 생성한 객체에서 값을 재설정하고, 다시 출력하는 기능을 구현을 해야 하는데 이 부분은 다른 언어에서..
-
[OpenCV Python] 관점 변환 구현해보기프로그래밍/OpenCV 2022. 1. 1. 16:10
안녕하세요 오늘은 관점변환(perspective transformation)에 대해 알아보고 구현해 볼려고 합니다. 관점 변환은 화면에 잡힌 물체를 기하학적 변환을 통해 형태를 변형하는 것입니다. 형태를 변형하여 가우시안블러 또는 캐닛 엣지를 사용하여 물체의 내용이 무엇이 있는지 아니면 가장자리 검출하기 좋게 변경을 할 수 있습니다. 제가 구현해본 관점 변환인데요. 클릭의 포인트를 담아서 그 객체의 포인트로 관점변환을 해본것입니다. 이렇게 관점변환을 하여 ROI를 정하고 그 ROI 안에 캐닛 엣지 들을 사용하면 가장자리 검출이 더 편리 하겠죠?? 소스는 아래에 설명을 같이 적어 놓았습니다. import cv2 import numpy as np # 포인트 배열 생성 points = np.zeros((4, ..
-
[OpenCV C++] tracker 를 사용한 object tracker 구현해보기프로그래밍/OpenCV 2022. 1. 1. 16:02
안녕하세요 까치입니다. opencv를 공부하던중인데 프로젝트를 통해 이미지 트랙킹하는 것을 구현해 보았습니다. 사용한 opencv에 들어있는 trackerCSRF를 사용했습니다. 먼저 selectROI를사용하여 ROI를 설정 했습니다. 그이후 tracker에 roi를 설정한 후 화면에 ROI를 따라 다닐 수 있도록 구현해 보았습니다. #include #include #include #include #include #include #include #include using namespace cv; using namespace std; int main(int ac, char** av) { //사용할 객체 생성 cv::VideoCapture cap("video/coffee.mp4"); cv::VideoWrit..