본문 바로가기

static 메소드의 제약 조건 - static 메소드는 오직 static 멤버만 접근할 수 있다. class StaticMethod { int n; void f1(int x) { n = x; } //정상 void f2(int x) { m = x; } //정상 static int m; static void s1(int x) { n = x; } //컴파일 오류. static 메소드는 non-static 필드 사용 불가 static void s2(int x) { f1(3); } //컴파일 오류. static 메소드는 non-static 메소드 사용 불가 static void s3(int x) { m = x; } // 정상 static void s4(int x) { s3(3); } // 정상 } - static 메소드에서는 this 키워드를..
static 멤버와 non-static 멤버의 차이 non-static 멤버 static 멤버 선언 class Sample { int n; void g() {...}} class Sample { static int m; static void g() {...}} 공간적 특성 멤버는 객체마다 별도 존재 - 인스턴스 멤버라고 부름 멤버는 클래스당 하나 생성 - 멤버는 객체 내부가 아닌 별도의 공간에 생성 - 클래스 멤버라고 부름 시간적 특성 객체 생성 시에 멤버 생성 됨 - 객체가 생길 때 멤버도 생성 - 객체 생성 후 멤버 사용 가능 - 객체가 사라지면 멤버도 사라짐 클래스 로딩 시에 멤버 생성 - 객체가 생기기 전에 이미 생성 - 객체가 생기기 전에도 사용 가능 - 객체가 사라져도 멤버는 사라지지 않음 - 멤버는 프로그램이 종료될 때 사라짐 공유의 특성 공..
메소드 오버로딩 조건 - 메소드 이름이 동일하여야 한다.- 메소드 인자의 개수가 서로 다르거나, 메소드 인자의 타입이 서로 달라야 한다.- 메소드의 이름이 같고 인자의 개수나 타입이 모두 같은데 메소드의 리턴 타입이 다르면 메소드 오버로딩이 성립되지 않으며 컴파일 오류가 발생한다. 오버로딩 성공 사례public class MethodOverloading { public int getSum(int i, int j){ return i + j; } public int getSum(int i, int j, int k) { return i + j + k; } } 오버로딩 실패 사례public class MethodOverloading { public int getSum(int i, int j){ return i + j; } publi..
접근 지정자 public - 클래스 내부/외부에서 모두 호출 가능 private - 클래스 내부 멤버들만 호출 가능 protected - 클래스 내부 메소드들은 호출 가능하며, 다른 클래스 중 상속받은 서브 클래스만 호출 가능 default - 동일한 패키지 내의 모든 클래스가 호출 가능
와닿는 글 지불해야할 세금이있다면 그건 나에게 직장이 있다는것이고..파티를 하고나서 치워야 할게 너무 많다면 그건 친구들과 즐거운 시간을 보냈다는 것이고.. 옷이 몸에 조금 낀다면 그건 잘먹고 잘살고 있다는 것이고..깍아야 할 잔디, 닦아야할 유리창, 고쳐야할 하수구가 있다면 그건 나에게 집이 있다는 것이고..정부에 대한 불평 불만의 소리가 많이 들리면 그건 언론의 자유가 있다는 것이고..주차장 맨끝 먼곳에 겨우 자리가 하나 있다면 그건 내가 걸을 수 있는데다 차도 있다는 것이고..난방비가 너무 많이 나왔다면 그건 내가 따뜻하게 살고 있다는 것이고..교회에서 뒷자리 아줌마의 엉터리 성가가 영 거슬린다면 그건 내가 들을 수 있다는 것이고..세탁하고 다림질 해야 할 일이 산더미라면 그건 나에게 입을 옷이 많다는 것이고..
데이터베이스 환경 (1) 1. 정보 처리 시스템 ο 정보 처리 (Information Processing) : 컴퓨터가 정보를 생성하기 위해 데이터를 처리하는 작업을 말한다. ο 데이터 (Data) : 현실 세계에서 단순한 관찰이나 측정을 통해서 수집된 사실(Fact) 이나 값(Value)을 말한다. ο 정보 (Information) : 적절한 결정(Decision Making)을 할 수 있게 하는 지식(Knowledge)으로서 데이터의 유효한해석(Interpretation)이나 데이터 상호 간의 관계(Relationship)를 말한다. 데이터 (D) → 처리기(P) → 정보(I) I = P(D) ο 데이터 처리 / 정보 처리 : 정보 추출 방법이다. ο 정보는 정확성(Accuracy)과 현재성(Currency)을 가지고 있어야..
큐 (Queue) 먼저 들어가고 먼저 나오는 FIFO(First In, First Out), 또는 선입선출 자료구조를 큐라고 한다. 큐의 주요 연산은 삽입과 제거이다. 큐의 삽입 연산 (Enqueue) 큐의 제거 연산 (Dequeue) 큐는 두 가지 방법으로 구현이 가능하다. 하나는 순환 큐 (Circular Queue), 그리고 연결 큐 (Linked Queue) 이다. 1. 순환 큐 (Circular Queue) 말 그대로 순환하는 큐이다. 배열의 크기를 미리 지정한 후에 그 크기에 맞춰 순환하는 큐이다. 그림을 보면 쉽게 이해가 갈 것이다. 배열의 크기는 6이고, 크기 6에 따라 순환하면서 데이터 값을 삽입하고 있는 모습이다. 개념 상으로는 왼쪽그림으로 생각하면 될 것이고 실제로는 오른쪽 그림과 같이 동작을 한다. ..
Windows Memory Code - 0xABABABAB : HeapAlloc으로 할당받은 메모리 바로 뒤의 가드 영역(no man's land)에 들어가는 값 - 0xABADCAFE : 메모리 해제중에 잘못된 포인터를 잡아내기 위해 집어넣는 초기값 - 0xBAADF00D : HeapAlloc이나 LMEM_FIXED flag를 준 LocalAlloc로 할당받은 메모리에 들어가는 초기값 - 0xFEEEFEEE : HeapFree()하고 난 뒤 해당 메모리 영역에 들어가는 값 디버깅 할 때 참고 하면 좋다.