본문 바로가기

프로그래밍40

Java - 인터페이스 17강은 인터페이스에 대한 내용이었다. 인터페이스란? 메소드의 몸체가 없고 선언부만 존재하는 추상 메소드만 가지고 있다. 인터페이스 인스턴스는 생성 불가능 하다. -> new 키워드를 통한 인스턴스 생성 불가함 단 인터페이스 참조변수는 선언 가능함. implements 키워드를 사용해서 클래스에서 인터페이스의 추상 메소드의 몸체를 작성해서 메소드를 완성한다. "메소드를 구현한다." 라고도 말함 인터페이스를 선언할 때 추상 메소드의 접근 수준을 명시하지 않더라도 기본적으로 public으로 설정된다. 일반적인 변수는 선언할 수 없으나, 상수는 선언이 가능하다. 이 경우에는 상수 키워드인 static final이 없이 변수를 선언하면 상수를 선언한 것으로 컴파일러 레벨에서 간주 상속과 구현 Class Robo.. 2020. 7. 8.
Java - 상속 (3) 일단 어제 16강을 들었는데 정리하는 걸 깜빡했다. 상속만 3연속 강의라니 중요성을 다시 한번 느낀다. Object 클래스 default 설정이라고 보면 되는데, 클래스 선언 시에 상속하는 클래스를 명시하지 않는다면 object 클래스를 상속하도록 작동함 사실상 모든 클래스는 단계의 차이가 있을 뿐 최상위 클래스로 object 클래스를 두고 있음 Fianl 선언 클래스의 경우 - 다른 클래스가 상속할 수 없음을 나타낸다. 메소드의 경우 - 메소드 오버라이딩을 할 수 없을음 나타낸다. @Override 코드 안정성을 높이기 위한 문법 "상위 클래스의 메소드를 오버라이딩 한다." 라는 의미의 선언 선언을 해 놓고 오버라이딩의 조건을 만족하지 못한다면 컴파일 레벨에서 에러가 발생한다. 나머지는 상속을 적용할 .. 2020. 7. 8.
Django 기본 pip install django #Django 설치 django-admin startproject __NAME__ #지정한 이름으로 Django 프로젝트 생성 django-admin startapp __NAME)) #지정한 이름으로 Django 앱 생성 python manage.py runserver (__PORT__) #Django 서버 기동, 포트 지정 안하면 8000으로 자동 설정 프로젝트 파일 manage.py : 웹 서버 실행과 관리에 관한 기능을 지원 PROJECT_NAME_DIR __init__.py : 해당 디렉토리를 파이썬 모듈로서 작동하도록 urls.py : 루트 url 설정 파일 settings.py : 프로젝트에 관련된 여러 설정을 관리 wsgi.py : Web Server Gat.. 2020. 7. 7.
Java - 상속 (2) 15번째 강의도 상속에 대한 내용이었다. 상속을 위한 두 클래스의 관계 is - a 관계를 이룰 것 하위 클래스는 상위 클래스의 모든 특성(변수 + 메소드)를 지님. 이에 더하여 자신만의 추가적인 특성을 더함 문법적인 관계가 아닌 실제 또는 설계상의 관계를 뜻한다. 의미 또는 기능상 전혀 연관이 없는 클래스간의 상속을 피할 것 예 전자제품 2020. 7. 6.
Java - 상속 (1) 객체지향의 4요소 중 하나인 상속에 대한 강의를 들었다. 상속의 정의는 "연관된 일련의 클래스들에 대해서 공통적인 규약을 정의하는 것" 이다. 상속을 하고자 할 때는 extends 키워드를 사용하여 진행한다. class man { String name; public void tellMyName() { System.out.println("My name is" + name); } } class workman extends man { String job; String address; public void introduceMyself() { System.out.println("My name is" + name); System.out.println("My job is" + job); System.out.print.. 2020. 7. 5.
Java - 콘솔 출력과 입력 12강 정리해본다. 콘솔 입력 및 출력에 대한 강의였고, 기본적인 입출력에 사용하는 클래스 및 메소드에 대한 강의였다. 출력 (System.out) print, println 전달받은 참조변수의 인스턴스에서 toString() 메소드를 이용, 반환받은 문자열을 출력한다. println과 print의 차이는 println은 자동개행, print는 수동개행이라는 점 printf 문자열의 조합 서식 지정자를 사용한다. 서식 지정자 용도 서식 지정자 용도 %d 10진수 정수 %e e표기법 기반의 실수 %o 8진수 정수 %g 대상에 따라서 %f 또는 %e 실수 %x 16진수 정수 %s 문자열 %f 실수 %c 문자 입력 Scanner 클래스 키보드, 파일, 인스턴스 등을 통해서 데이터를 입력받을 수 있다. Scan.. 2020. 6. 29.
Java - 메소드 오버로딩과 String 클래스 11번째 강의를 정리해보자. 내용은 메소드 오버로딩과 String 클래스에 관한 내용인데 왜 둘이 엮여있는지는 모르겠다. 메소드 오버로딩 동일한 메소드의 이름에 다양한 매개변수 정보를 사용할 수 있는 것 매개변수의 수, 자료형 생성자에 대한 오버로딩 가능함 class testClass { void TestMethod(int num1) {...} void TestMethod(int num1, int num2) {...} void TestMethod(double num1, int num2) {...} } this 키워드 해당 클래스의 메소드, 생성자를 이용해서 스스로의 데이터를 사용, 업데이트 가능 String 클래스 String 클래스로 생성한 인스턴스는 immutable한 인스턴스이다. -> 내부 데이터.. 2020. 6. 28.
Java - 정보 은닉과 캡슐화, 클래스 변수와 메소드 사전 스터디 과제에 집중하다보니 개인 공부에 신경을 못썼다. 하루에 1강씩은 꼭 봐야겠다고 다시 한번 다짐했다. 일단 오늘을 정리하면 9강, 10강을 들었는데, 목차보고 괜히 쫄았나보다. 9강 목차가 정보 은닉, 접근 수준 지시지, 캡슐화였는데 캡슐화의 중요성이야 뭐 말할 것도 없지만 정보 은닉과 지시자는 그냥 public, private, protected, (default)에 대한 내용들이었다. 그냥저냥 다시한번 개념을 되새기는 정도로 마무리하고 넘어갔다. 단, 캡슐화의 경우는 굉장히 중요한 개념이니까 객체지향 4요소에 대해서 한번 정리할 필요를 느꼈다. 다음 강의인 10강은 static 접두어를 사용하는 변수, 메소드등에 대한 강의였는데 막연하게 C언어의 전역변수 비슷한 역할을 하는 것으로 알고 있.. 2020. 6. 26.
Pyinstaller 사용해서 PyQt5 UI포함한 실행파일 빌드 방법 def resource_path(relative_path): """ Get absolute path to resource, works for dev and for PyInstaller """ base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__))) return os.path.join(base_path, relative_path) form = resource_path('_UI_FILENAME_') form_class = uic.loadUiType(form)[0] _UI_FILENAME_에 사용할 .ui 파일 이름 넣어주어야 한다. pyinstaller 사용해서 소스파일 빌드 이후 생성된 .spec 파일의 datas 부분.. 2020. 6. 26.