목록Language (37)
ecsimsw
자바의 접근 제한자 private : 같은 클래스 내에서만 접근 가능 default : 같은 패키지 내에서만 접근 가능 protected : 같은 패키지내 또는 자손 클래스일 경우 접근 가능 public : 제한 없음 캡슐화 접근 제한자는 객체지향의 캡슐화, 그리고 그를 통한 코드 은닉화를 위한 도구이다. 데이터를 외부로부터 숨기거나, 접근을 막고, 또는 접근에 처리를 강제화한다. 이전에 oop 캡슐화에 대해서 정리한 글이 있다. 객체지향을 공부하면서 캡슐화를 정확히 몰랐고, 은닉화와 구분하지 못해서 정리했던 기억이 난다. 그때 캡슐성을 아래 3개로 정리했다. Encapsulation 1) 유사한 기능이나 변수를 한 집합으로 하여 더 관리하기 쉽게하고 코드를 명확히 함. 2) 외부에서 멤버를 엑세스하는 ..
초기화 멤버 변수의 초기화는 선택적이지만, 지역 변수의 초기화는 필수적이다. 멤버 변수를 초기화 하는 방법에는 세가지가 있다. 0. 기본값 1. 명시적 초기화 2. 생성자를 통한 초기화 3. 초기화 블록 0. 기본값 초기화에 앞서, 멤버 변수는 초기화가 선택적이기 때문에 초기화가 안됐다면 자료형 마다 기본 값을 갖는다. boolean = false char = '\u000' byte,short,int = 0 long = 0L float = 0.0F double = 0.0 참조형 변수 = null 1. 명시적 초기화 가장 쉽게, 변수를 선언과 동시에 초기화하는 방식이다. class Person{ String name = "unkown"; int age=0; } 2. 생성자를 통한 초기화 생성자를 이용하여 ..
Int vs Short / Byte 작은 수를 저장할 변수의 타입은 4 바이트까지 과한거 아닌가?. Byte형은 혹시 모르고, 2 바이트 정도면 충분할 거 같은데 Short를 쓰는게 이득 아닐까?? JVM의 Operand stack은 피연산자를 4 바이트로 저장하기 때문에, 그 보다 작은 작료형은 오히려 4Byte로 변환하여 계산된다. => 성능을 고려한다면 int, 정말 공간을 효율적으로 사용해야한다면, 그땐 short나 byte 타입을 생각하자.
1. 포인터는 변수이고 배열 명은 상수이다. 포인터는 다른 주소를 가리킬 수 있지만 배열 명은 오직 배열의 시작 주소만을 가리킨다. 2. 포인터로 메모리를 할당하여 동적인 크기의 배열을 선언할 수 있고, 조절할 수 있다. 반면 배열은 정적인 크기로 선언되어 크기가 변할 수 없다. 3. 포인터 변수의 크기는 4바이트 (32비트 컴퓨터), 8바이트 (64비트 컴퓨터) 이지만 배열 명을 sizeof 할 시 배열의 전체 크기를 구할 수 있다. 4. delete, delete[]를 선호해야하는 이유는 크기를 지정하는 것이 더 안전하기 때문과, delete[]을 이용해야 소멸시키는 객체만큼의 소멸자를 호출하기 때문이다. 추가적으로 포인터에 할당한 메모리를 delete 하는 것과 포인터 변수의 값은 관련이 없다. d..
constructor ary = new int*[count_rows]; for (int i = 0; i
암시적으로 생성자가 호출되면서 발생할 수 있는 의도치 않은 형 변환을 막기 위해 생성자의 명시적 호출을 강제하기 위한 키워드