감기약을 생각해보자. 감기약에는 다음과 같은 효능이 있다. 1 . 기침을 멈추게 해준다2 . 열을 내려주게 해준다3 . 코막힘을 없애준다 이 세가지 효능이 있다고 가정하자. 감기약은 이 세가지 효능을 하나의 '캡슐'안에 담아서 사람들이 이 '캡슐'하나만 먹으면 저 3가지 효능을 볼 수 있게끔 해준다. 자바에서의 캡슐화 또한 알약에서의 캡슐의 원리와 동일하다. 상황, 목적에 따라 캡슐을 만들듯 클래스를 캡슐화 하면 프로그램이 매우 간결해 질 수 있다. 캡슐화를 하지 못하면 프로그램이 복잡해지고 구현 과정이 어려워지기 마련이다. 밑의 예제는 캡슐화에 대한 두가지 경우의 예제이다. 1 . 12345678910111213141516171819202122232425262728293031323334353637383..
Language/Java
우리가 정보, 즉 인스턴스 변수를 은닉하기 위해서는 인스턴스 변수 앞에 private선언을 해주었는데 이러한 키워드를 통틀어서 우리는 접근 수준 지시자(Access - Level - Modifier)라고 한다. 접근 수준 지시자가 하는 역할은 말 그대로 접근 허용 수준을 결정할 때 사용된다. 접근 수준 지시자에는 4가지 종류가 있다 1 . public2 . protected3 . private4 . default 그렇다면 접근 수준 지시자는 아무데서나 쓸수 있을까? 아니다. 접근 수준 지시자를 선언할 수 있는 두가지 유형이 있다 1 . 클래스 : public, default만 선언 가능 2 . 인스턴스 변수와 메소드 : public default protected private 모두 선언 가능 우선 클래..
자바에서의 '정보'란 '인스턴스 변수'를 의미한다. 현재 포스팅의 제목의 정보 은닉을 다시 해석해 보면 즉 인스턴스 변수 은닉이라고 재 해석할 수 있는데, 그러면 왜 우리가 이 '정보'라는 것을 숨겨야 하는 것일까? 간단한 예제코드를 해석해 보자. 1234567891011121314151617181920212223242526272829303132333435363738394041424344//흔히 자바에서 말하는 '정보' 는 인스턴스 변수를 의미한다.class Circle { final double pi = 3.14; int rad = 0; public Circle(int r) { rad = r; setrad(r); } public void setrad(int r) { if(r
우리가 흔히 자바에서 생성자 개념을 배울 때 이러한 사실이 되게 중요하게 강조된다. 1 . 인스턴스 생성의 마지막 단계는 생성자 호출이다.2 . 어떠한 이유로든 생성자 호출이 생략된 인스턴스는 인스턴스가 아니다. 하지만 이 두가지 사실을 알게되면 의구심이 들 수 도 있다. 12345678910111213141516171819202122232425262728293031323334class banka { int balance = 0; public int deposit(int a) { balance += a; return balance; } public int withdraw(int a) { balance -= a; return balance; } public int balancechek() { System...
Java의 정수형 자료형 중에는 Long 자료형이 있다. 한가지의 예시를 들어보자. 12345class consta{ public static void main(String[] args){ long a = 3098309284209;}}Colored by Color Scriptercs 다음과 같이 long형 자료형 변수 a에 임의의 숫자를 넣었다고 하자. 그 다음 표준 출력문으로 a를 출력하려고 하면 값이 너무 크다는 문구와 함께 오류가 나오는 것을 볼 수 있다. 충분히 long자료형에 들어갈 수있는 크기의 숫자이다. 하지만 왜 들어가 지지 않을까? 자바에서는 Long형 정수의 표현 방법은 별도로 제공되지 않는다. long형 정수를 써야하는 다음과 같은 경우에는 컴파일러가 알아서 이를 long형으로 인식하..
Java에서의 정수 자료형은 다음과 같다. byte, short, int long. 변수 선언시 이 네가지를 모두 하여도 된다. 하나의 예시를 들어보자. 나는 short형 자료형인 p, i라는 정수형 변수를 선언하고 short형 자료형인 result 변수에 p,i변수의 값을 합친것의 결과를 넣었다. 그 후 출력을 하면 오류가 나는것을 볼 수 있다. 왜그럴까? 그 이유는 자바는 기본적으로 정수형 연산을 int형으로만 진행하기 때문이다. 이말은 즉슨 위의 상황에서 p, i를 short형으로 선언한것은 딱히 상관이 없다. 하지만 result에는 결론적으로 p,i를 더했다는 '연산값'이 들어가는데, 이 연산하는 과정에서 자바는 자동으로 형변환을 하여 값을 넣는다. 결론적으로 두 변수를 더한 연산값은 int형, ..
1 . Java에서는 기본 정수 계산 최소 단위가 int형이다. 정수의 저장은 short, byte로도 가능하지만 정수의 계산은 최소 int형으로 계산된다. 2 . Java에서 char형은 무조건 유니코드를 기반으로 문자를 처리한다. 문자를 char형 변수에 저장할 때 실제로 저장되는것은 해당 문자의 유니코드값이다.