본문 바로가기

전체 글

(35)
[JAVA] 클래스 변수와 클래스 메소드(static) (자바 독학하기11) 1. 클레스 변수 (static 변수) 인스턴스 변수는 인스턴스가 생성되었을 때, 생선된 인스턴스 안에 존재 하는 변수이다. 그러나 클래스 변수는 인스턴스의 생성과 상관없이 존재하는 변수이다. 클래스 안에서 선언된 변수 앞에 static 선언을 붙이면 이는 클래스 변수가 된다. 위 코드와 같이 생성자에서 클래스 변수의 값을 1씩 증가시킨 후 출력하는 코드를 생성한 후 main 함수에서 인스턴스 생성을 3차례 하였다. 결과는 클래스 변수가 1씩 증가함을 볼 수 있는데, 이를 통해서 다음의 결과를 알수 있다. -static 으로 선언된 변수는 변수가 선언된 클래스의 모든 인스턴스가 공유하는 변수이다. 이러한 클래스 변수는 메모리 공간에 존재하는 변수로 해당 변수가 선언된 클래스의 인스턴스들은 이 변수에 바로..
[JAVA] 접근 수준 지시자(Acess-level-Modifiers) (자바 독학하기10) 이미 구현된 클래스를 사용하는 사용자가 잘못된 값을 인스턴스 변수에 저장하게 되면 컴파일 과정에서 에러가 발생하게 된다. 자바에선 이러한 접근을 허용하지 않도록 클래스를 설계하는 것을 정보 은닉이라 한다. 다음과 같이 코드를 작성하였다. 정보를 은닉하기 위해서는 인스턴스 변수앞에 private 를 붙여주면 된다. 이렇게 되면 해당 클래스 외에 다른 클래스에서 variable 이라는 인스턴스 변수를 수정하려고 하면 에러가 발생한다. 위 코드에서 set_val 은 값의 설정을 위한 메소드이고 get_val 은 값의 참조를 위한 메소드이다. 이러한 메소드는 각각 게터와 세터라 부른다. 게터(Getter) - 인스턴스 변수의 값을 참조하는 용도로 정의된 메소드 - 변수의 이름이 name 일 때, 메소드의 이름은..
[JAVA] 패키지 (Package) (자바 독학하기9) 패키지는 클래스를 묶는 수단이다. 자바에서 제공되는 클래스도 무수히 많이 있고 이 많은 클래스의 이름만 보면 사용 목적을 알기 힘들다. 이를 구분하기 위해 패키지를 통해 클래스들을 모아 관리를 용이하게 만든다. 또한 다른 곳에서 제공 받은 클래스의 이름이 기존의 이름과 같은 경우 패키지를 통해서 충돌 문제를 해결할 수 있다. 패키지를 선언하게 되면 클래스의 이름이 같더라도 인스턴스 생성시 사용하는 이름이 다르고 클래스 파일의 저장 위치가 다르다. 패키지의 네이밍 룰은 다음과 같다. ㄱ. 클래스의 이름과 구분이 되도록 패키지의 이름은 모두 소문자로 구성한다. ㄴ. 인터넷 도메인 이름의 역순으로 패키지 이름을 구성한다. ㄷ. 패키지 이름의 끝에 클래스를 정의한 주체 또는 팀을 구분하는 이름을 추가한다. 이제..
[JAVA] 클래스와 인스턴스 ( Class & Instance) (자바 독학하기 8) 1. 클래스 (Class) 클래스 = 데이터 + 메소드 라고 쉽게 표현 하기도 한다. 클래스 내에 선언된 메소드를 인스턴스 메소드라 부른다. 인스턴스 변수는 멤버 변수 또는 필드 라 불리우기도 한다. 위 코드에서 메소드 내에서 선언된 result 변수와 달리 count 는 class 바로 하위에 위치해 있다. 이처럼 메소드 내에서 선언된 변수를 지역변수라 부르며 이런 지역 변수와 다르게 count 라 명명된 인스턴스 변수는 클래스 내에 위치한 메소드 내에서 접근이 가능하다. 클래스는 틀을 구성하는 것과 같다 라고 정의하는데 클래스를 이용하여 인서턴스를 찍어내듯이 사용하기 때문이다. 위 코드에서 new study(); 와 같이 표현하여 클래스를 인스턴스화 하면 변수와 메소드를 담고있는 인스턴스가 만들어진다..
[JAVA] 메소드 Method (자바 독학하기 7) 1. method 기본적으로 만들어지는 main 이라는 메소드의 형태는 다음과 같다. 또한 자바 프로그램은 main 이라는 이름의 메소드에서 부터 시작을 한다. 이 main 외에 추가적으로 method 를 생성하여 main method 에서 호출할 수 있다. 이를 메소드 정의라고 한다. public static void print_method (int value){ ... } 는 print_method 의 정의이다. 소괄호 안에는 변수 value 의 선언이 위치해 있다. main 에서 print_metho(255); 를 통해 메소트를 호출하는데 이를 메소드 호출문 이라고 한다. 여기서 255이 int value 에 전달 되는데 이렇게 전달되는 값을 받기 위해 선언된 변수를 가리켜 매개변수라 한다. 매개변..
[JAVA] 실행 흐름 컨트롤 (자바 독학하기 6) 1. if ~else 문 If ~ else 문은 ㄱ. if 만 사용 ㄴ. if , else 사용 ㄷ. if, else if, else 사용 등 다양한 형태로 사용할 수 있다. if 와 if else 옆에는 괄호 안에 조건 문을 넣어주고 그 결과가 true 일 경우 중괄호 안의 문장이 실행되며, false 일 경우 중괄호를 건너뛰고 다음 조건을 체크하거나 if ~ else 문을 끝낸다. if 문의 내용을 체크하고 아니라면 else 나 else if 문을 체크 하는 형식이다. 또한 if 안의 중괄호 내용이 한줄이라면 중괄호를 생략하고 사용하는 경우도 있다. 이 if ~else 문과 유사한 조건 연산자가 있다. 조건 ? 수1 : 수2 기호 ? 의 왼편이 true 이면 기호 : 의 왼편에 있는 수가 반환된다. ..
[JAVA] 연산자 (Operator) (자바 독학하기 5) 연산자란 연산을 목적으로 정의된 기호이다. 자바의 모든 연산 기호는 다음과 같다. 1. 이항 연산자 나눗셈에서 정수형인지 실수형인지에 따라서 결과값이 달라지는 점을 주의해야 한다. 7/3 을 정수형으로 끼리 나누면 정수형 결과인 2로 나오고 7.0 / 3.0 과 같이 실수형 끼리 나누면 실수형 결과인 2.3333333333333335 가 나온다. 2. 복합 (Compound) 대입 연산자 다음과 같이 a 에 a 와 다른 값과의 연산값을 넣는 방식은 표의 우측과 같이 바꿔서 표현할 수 있다. 3. 관계 연산자 관계 연산자는 두개의 피연산자 사이에서 관계를 따져주는 이항 연산자이다. 따라서 비교 연산자 라고도 한다. 해당 연산을 통해서 true, false 의 값을 반환한다. 4. 논리 연산자 이는 신호와 ..
[JAVA] 상수(Constants) (자바 독학하기 4) 상수(常數)는 값이 변하지 않는 수를 의미한다. 그러나 자바에서는 한번 값이 정해지면 이후로는 변경이 불가능한 변수도 상수라 칭한다. 1. 상수 변수를 선언할때 앞에 final 을 붙이면 상수가 된다. 다음과 같이 final 이 붙은 상수 A 의 값을 변경하려 하였을 때 eclipse 에서는 자동적으로 에러를 띄워준다. 2. 정수형 상수의 표현 정수의 2진수, 8진수, 10진수, 16진수는 다음과 같이 표현한다. 2진수 : 0b1110 or 0B1110 8진수 : int A = 016 10진수 : int A = 14 16진수 : int A = 0xE 위의 3가지 진수 표현은 모두 같은 14값을 나타낸다. 계산기를 이용하면 쉽게 동일한 값을 비교할 수 있다. 또한 다음과 같이 숫자 사이에 _ 를 넣는 것을..