본문 바로가기

Java 시작

자바기초

자바는 크게 클래스. 변수, 메소드 세 가지 이루어져있다고 보아도 무방하다.

클래스와 메소드 관련해서는 조금 더 공부한 후에 올리도록 하겠다.

 

여기서 변수란 ?

컴퓨터가 데이터를 처리하기 위해서는 정수인지, 실수인지, 문자인지 정확히 알려줄 필요가 있기 때문에 데이터의 타입을 정해준다. 여기서 변수는 이러한 데이터를 담아두는 주머니라고 보면 된다. 필요한 데이터를 집어넣고 적절히 가공하여 프로그램 내부적으로 사용하거나 가공이 완료된 데이터를 꺼내서 출력하는 등의 역할을 한다.

 

그럼 변수의 데이터 타입은 어떤 것이 있는가 ?

정수형 byte, short, int, long
실수형 float, double
질의형 boolean
문자형 char
문자열 String

char타입은 문자형이지만 char타입으로 문자열은 표현 할 수가 없다. char타입은 2바이트로 구성되어있기에 한 문자는 저장할 수 있어도 문자열을 저장하기엔 적합하지 않다. 그래서 문자열을 저장하려면 "String"이라는 데이터타입을 사용하는데 이것은 앞에 다른 데이터타입과 달리 첫 문자가 대문자이니 주의해서 사용하도록 하자.

 

그리고 float타입은 변수를 선언하고 값을 넣을때 float k = 1.0f 와 같이 실수뒤에 f를 붙여주어야한다. 이것도 주의

+) 여기서 알 수 있는 점 => 클래스도 데이터타입으로 사용할 수 있다.

 

 

이제 변수를 선언하는 법을 알아보자

 변수를 선언하는 방법은 크게 두 가지가 있다. 

  • int a = 10; -> 데이터타입 변수명 = 정수;
  • int a; -> 데이터타입 변수명;

위 두 가지 방법의 차이점은 변수를 선언하면서 초기화를 했는가 안했는가의 차이이다. 

변수에 값을 초기화하지 않고 변수를 사용했을 시(예를 들어 사칙연산) 당연히 오류가 난다. 어떠한 값이 저장되어 있는지 모르기에 그러한 경우에는 먼저 변수의 값에 초기화를 해주어야 한다. 하지만 반복문과 같이 어떠한 변수를 아래에서 변하는 값에 대입을 하려한다면 굳이 초기화를 하지 않아도 된다. 어차피 아래에서 계속 값이 초기화되기 때문에. 경우에 따라 이렇게 선언하면 된다.

 

당연히 값을 초기화할 때에는 데이터 타입에 맞는 데이터만 넣어줘야한다. int 타입에는 정수, double 타입에는 실수와 같이.

 

그리고       ;     <= 이 세미콜론은 문장이 끝났다라는 구분자기에 항상 주의해서 삽입하도록하자.

 

 

자바에서의 사칙연산은 일반 우리가 아는 수학사칙연산과 표현방식이 다르다

a + b +
a - b -
a * b *
a / b ÷
a % b 나머지 값

예시

int a = 2;

int b = 5; 

System.out.println( a / b ); 을 실행한다면 0이 나온다. 왜냐하면 데이터 타입은 정수타입이기에 실수로 계산되어 나오지 않기 때문이다. a를 b로 나누면 몫은 0 나머지는 2이다. 이것을 소수점이 나오도록 표현하고 싶다면 double이나 float타입을 사용하면된다.

 

ex) int타입을 double a = 2.0 으로 변환 

 

그리고 %는 말 그대로 나머지를 구하는 연산자다. 

System.out.println( a % b );를 컴파일한다면 2가 나온다. 2를 5로 나누면 몫은 0이고 나머지는 2이기 때문이다.

 

자바에서의 비교연산  (true of false)

a > b a는 b보다 크다
a >= b a는 b보다 크거나 같다.
a < b a는 b보다 작다.
a <= b a는 b보다 작거나 같다.
a == b a는 b이다
a != b a는 b가 아니다

a는 b이다에서 a = b라고 잘못 적을경우 b값이 a에 대입되므로 주의해서 사용하도록 하자. 

=는 대입연산자로 사용하므로 값을 비교할 경우에는 ==으로 사용하자.

그리고 !은 not게이트를 의미한다.

 

자바에서의 증감연산

a += 1 a = a + 1
a -= 1 a = a - 1
a *= 1 a = a * 1
a /= 1 a = a / 1
a %= 1 a = a % 1
a++; a--; 해당 줄이 실행된 후에 1이 증가(감소) => 후처리
++a;  --a; 해당 줄이 실행되기 전에 1이 증가(감소) => 전처리