동적 정적 바인딩 사전 준비 * 먼저 다형성에 대한 개념을 알고 있어야 한다. https://licktwice.tistory.com/59https://licktwice.tistory.com/59 [JAVA]자바 - 다형성 Polymorphism 다형성 Polymorphism OOP의 4대 특성 * 다형성은 OOP(Object Oriented Programming)의 4대 특성 중 하나로 주류 OO언어에 꼭 들어가는 개념이다. * 그중에서도 가장 핵심이라고 생각되는 개념이다. 넓은 의미의.. licktwice.tistory.com * 즉, 다형성을 사용하기 위해서는 동적 바인딩이 필요하다. 사전 준비 * 동적 바인딩과 정적 바인딩의 차이를 알기 위해서는 상속관계와 함수 오버라이딩이 필요하다. * 다형성을 ..
내포 클래스 Nested Class 2가지 내포 클래스 * 내포 클래스란 클래스 안에서 선언된 클래스를 만한다. // 외부 클래스 public class Outer{ // 내포 클래스 public class Nested{ } } * 외부 클래스는 접근지정자로 public, package만 사용할 수 있지만, 내포 클래스는 protected, private를 추가로 더 사용할 수 있다. * 클래스이므로 객체, 생성자, 접근지정자, 메서드 모두 만들고 사용할 수 있다. * 자바에는 2가지 방법의 내포 클래스가 있다. 1. 비정적 내포 클래스 (Non-static Nested Class) (내부 클래스라고도 한다. (Inner Class)) 2. 정적 내포 클래스 (static nested class) * C..
라이브러리 라이브러리란? * 라이브러리는 다른 파일들과 합쳐지기 위한 파일이다. (허접한 설명이네) * 다른 파일과 합쳐지는 게 목적이므로 프로젝트이지만 실행파일을 만들지 않는다. * 코드 재사용이 매우 높다. * C에서 라이브러리는 정적 라이브러리와 동적 라이브러리로 나눌 수 있다. * 대표적으로 c표준라이브러리에 들어있는 함수들을 우리는 자유롭게 사용한다. 코드가 내부적으로 어떻게 도는지 정확히 알 수는 없지만 우리는 라이브러리를 믿고 함수를 사용한다. * 소스코드를 보여줄 수도 있지만, 라이브러리는 오브젝트파일만 보내도 괜찮다. 헤더파일과 함수에 대한 설명만 충분하다면 우리는 기술 유출을 방지하며 라이브러리를 배포할 수 있다. 라이브러리는 프로젝트이다 * 일단 프로젝트(project)란 실행파일이나..
extern 소개 * 전역 범위에 선언된 전역변수를 파일 외부에서도 사용 가능하도록 만든다. 즉, 파일에서도 전역변수로 사용되지만 다른 곳에서도 전역변수로 사용될 수 있다. 특징 * 헤더파일에 extern을 붙여서 변수를 선언하면 된다. * 초기화를 하지 않으면 자동으로 0을 넣어준다. * 정적 데이터 영역에 할당된다. 허락하지 않아도 쓸 수 있다. * 변수가 선언된 파일 안에서 extern을 붙이지 않아도, 남들이 가져다가 쓸 수 있다. 1. 변수의 이름을 알고 있다. 2. 내가 사용하는 파일에 extern을 붙여서 선언한다. * 두 가지를 만족하면 외부의 전역변수를 마음대로 사용할 수도 있다. (물론 좋은 건 아닐 거다..) extern 함수 * 우리는 이미 extern이 자동으로 들어간 함수를 사용..
◎ errno이란? * 표준 라이브러리 함수가 실패했을 때 특정 값을 errno에게 넘긴다. * errno 변수는 정적 메모리에 위치한다. * 함수가 넘긴 에러 값은 0보다 큰 값을 반환하고 errno에는 약 120개의 오류 메세지를 구분할 수 있다. ◎ 정적 변수인 errno, 주의할 점 * error의 초기값은 0이고, 에러가 없다면 0, 에러가 있다면 0보다 큰 값을 가지고 있다. * 특정 함수가 errno을 반환 할 수 있고, errno을 체크하려면 즉각적으로 호출해야한다. 또는 값을 다른 변수에 저장. (다른 함수가 실행되면 값이 변경되기 때문에) ◎ errno가 숫자라면 어떻게 의미를 알 수 있지? * 120개의 의미를 문서를 뒤질 필요는 없다. char* strerror(errno); * 매..