자바에서 모든 코드는 반드시 클래스 안에 존재해야 한다.

서로 관련된 코드들은 그룹으로 나눠 별도의 클래스를 구성하게 된다.

 

class 클래스이름 {

    1)맨처음에 클래스 작성하기.
    클래스의 시작과 끝으로 모든 코드는 이 블럭 안에 작성 한다.   
    2)그리고 클래스 안에 main메서드 선언

public static void main(String[] args) {

   3)main 메서드 선언부 안에 실행될 문장들이 들어감. 
   첫 문장부터 차례대로 실행됨.

   }
}

 

변수

 

변수: 값을 저장할 수 있는 메모리상의 공간. 저장된 값은 변경될 수 있다.

int age;     // age 라는 이름의 변수를 선언

int는 '변수타입'을 의미하고

age는 '변수이름'이다.

 

변수를 선언하면 메모리의 빈 공간에 '변수타입'에 맞은 크기의 저장공간이 확보되고

이 저장공간의 이름은 '변수이름'을 통해 사용할 수 있게 된다.

 

public class Main {

	public static void main(String[] args) {
		
		int intType = 100;
		double doubleType = 1.5;
		String stringType = "코딩";
		
		System.out.println(intType);
		System.out.println(doubleType);
		System.out.println(stringType);

	}

}

클래스 생성과 메서드 선언부 안에 변수를 선언하고 출력해보았다.

 

int 는 정수형으로 intType 이라는 변수이름을 만들어 100값을 저장했다.

double 은 실수형으로 doubleType 이라는 변수이름을 만들어 1.5를 저장했다.

string은 문자형으로 stringType에 값 저장함.

 

선언후 뒤에는 꼭 ;를 붙인다.

System.out.println();  // 괄호의 내용을 화면에 출력해주고 줄바꿈 해준다.

화면에 각각

100

1.5

코딩 

으로 출력이 잘 됐다.

 

 

 

int(정수형) 변수타입에 문자형을 값을 넣어봤더니 에러가 떴다.

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 

Type mismatch: cannot convert from String to int

 

 

public class Test {

	public static void main(String[] args) {
		
		int a = 1;
		int b = 2;
		
		System.out.println(a+b);
		System.out.println("a+b=" + (a+b));	
	}
}

출력:
3
a+b=3

"a+b=" 을 문자형으로 변환시켜 출력을 다르게 할 수도 있다.

 

 

 

변수의 형변환

 

int a = 0.5;  // int 정수타입은 실수의 값이 출력되지 않는다.

public class Main {
			
	public static void main(String[] args) {

		int a = (int)0.5; //괄호 안에 정수형 타입을 넣어 변환가능
		
		System.out.println(a);
	}
}

실수형을 정수형으로 형변환이 됐다.

 

출력값은 0

 

정수부분만 출력되고 소숫점 뒤는 생략된다.

public class Main {
			
	public static void main(String[] args) {
		
		double b = 0.5;
		int a = (int) (b + 0.5); 
		
		System.out.println(a);
	}
}

 실수형 b에 0.5를 더해서 1.0이 되므로 1이 출력이 된다.