본문 바로가기

Java

Java 문법 - 변수형, 연산자

@markdown

# Java 변수형

________

- 지역변수는 반드시 초기화 후 사용한다.

- 실수의 default는 double형이다.

- 정수의 default는 int형이다.


<pre><code class="java" style="font-size:14px">형변환

double = int(묵시적 변환)

int = double(명시적 변환)

</code></pre>


* 기본형 : `byte`, `char`, `int`, `float`, `double`, `boolean`

* 참조형 : `String`, `Integer`, `Double` 등 기본형에 대문자로 된 클래스

  -  참조형은 기능이 없는 기본형에 추가 기능을 추가하여 기본형 역할을 하면서 동시에 추가 연산 혹은 기능이 있는 타입이다.

 - `WrapperClass`라고도 함



- `String` 참조형은 초기화하면 고정적인 문자이다.

 - `+` 연산자로 문자 연결시, 문자열이 변하지 않는다.

 하지만 `+` 연결을 사용해도 효과가 나타난다.

 - `String + String` 연산시 임시로 `StringBuffer`를 만들어 `String + String`을 생성하고, 이것을 `StringString`의 `String` 형태로 변환 후 해당 주소값을 할당하여 연결한 것 처럼 연산하는 것이다.

 - 이 과정에서 불필요하게 메모리를 사용하기 때문에 `+` 연산으로 `String` 연결하는 방법은 메모리 낭비이므로 메모리가 제한되는 모바일 애플리케이션 개발에서는 비효율적인 방법이다.


# Java 연산자

________

- `&` `&&` `and` 연산자

 - `&` 한개를 사용할 경우, 앞 조건이 거짓이더라도 뒷 조건이 수행된다.

 - `&&` 두개인 경우, 앞 조건이 거짓이면 뒤 조건은 수행하지 않는다.

- `|` `||` `or` 연산자

 - `|`는 앞 결과에 상관없이 뒷 조건 수행한다.

 - `||`는 앞 결과가 참이면 뒤에 문장 수행하지 않는다.


<pre><code class="java" style="font-size:14px">int i = 10;

boolean a = i>10 && ++i > 10;

System.out.println("i= " + i + " a= " + a);

a = i>10 | ++i > 10;

System.out.println("i= " + i + " a= " + a);

</code></pre>

<pre><code class="java" style="font-size:14px">실행결과

i= 10 a= false

i= 11 a= true

</code></pre>


# JavaBeans

________

 - `JavaBeans`는 `Java`로 작성된 소프트웨어 컴포넌트

 - `JavaBeans`는 `VO`(Value Object), `DTO`(Data Transfer Object)라고도 함

 - `DTO`는 `DAO`에서 `Controller`에 넘기는 것


 - `JavaBeans`의 관례

   - 클래스는 직렬화되어야 한다.(클래스의 상태를 지속적으로 저장 혹은 복원 시키기 위해)

   - 클래스는 기본 생성자를 가지고 있어야 한다.

   - 클래스의 속성들은 get, set 혹은 표준 명명법을 따르는 메서드들을 사용해 접근할 수 있어야 한다.

   - 클래스는 필요한 이벤트 처리 메서드들을 포함하고 있어야 한다.


# 접근제한자

________

 - 접근방법 : `public`, `private`, `protected` 등

 - 활용방법 : `abstract`, `final`



 - `public` : 모든 패키지

 - `private` : 정보 은닉 캡슐화, 클래스 내에서만 유효

 - `protected` : 같은 패키지 내에서 사용가능, 다른 패키지 상속받으면 가능


 - `static` : Class 변수, Class 메소드, Class 로드 시 메모리에 올라옴

 - `non-static` : object 변수, object 메소드, new할때 메모리에 올라옴