자바 프로그램의 구조
- 클래스 만들기
public class Hello {
...
}
- class 키워드로 클래스 이름을 선언하고 ‘{ }’ 안에 변수와 메소드(함수) 코드를 작성한다.
-
public 은 다른 클래스에서 Hello 클래스를 자유롭게 참조할 수 있다.
- main() 메소드
public static void main(String[] args) {
...
}
-
main()은 반드시 public static void 로 선언되어야 하며, 한 클래스는 두 개 이상의 main()을 가질 수 없다.
-
메소드
-
C/C++ 함수를 자바에서는 메소드(method)라고 부르며, 반드시 클래스 내에 작성되어야 한다.
-
화면 출력
System.out.println("Hello"); // "Hello" 문자출력
-
정수, 문자, 문자열 등 데이터를 화면에 출력하기 위해 System.out.println()을 이용한다.
-
식별자(identifier): 클래수, 변수, 상수, 메소드에 붙이는 이름을 말한다.
-
식별자 이름 규칙
-
특수문자 ‘_’, ‘$’만 사용 가능하다.
-
한글을 사용할 수 있다.
-
숫자는 사용 가능하나, 첫 번째 문자로는 사용할 수 없다.
-
if, while등 자바 언어의 키워드는 사용할 수 없다.
-
true, false, null은 사용할 수 없다.
-
대소문자를 구별한다.
-
길이 제한이 없다.
-
자바의 데이터 타입
var 키워드로 타입을 생략하고 변수 선언
-
Java 10부터는 var 키워드를 사용하여 변수의 타입을 생략하고 간단히 변수를 선언할 수 있다.
-
컴파일러는 var 키워드로 선언된 문장을 추론하여 변수의 타입을 자동으로 결정한다.
var price = 200; // price는 int 타입으로 결정
var name = "junyong"; // name은 String 타입으로 결정
var pi = 3.14; // pi는 double 타입으로 결정
var point = new Point(); // point는 Point 타입으로 결정
var v = new Vertor<Integer>(); // v는 Vector<integer> 타입으로 결정
-
var 키워드는 지역 변수에만 한정되며, 초기값이 주어지지 않으면 오류가 발생한다.
public class Var { public static void main(String[] args) { var price = 200; // int 타입 var name = "junyong"; // String 타입 var pi = 3.14; // double 타입 System.out.println("price = " + (price + 1000)); System.out.println("name = " + name); System.out.println("pi = " + pi * 10); } }
-
결과: price = 1200 // name = junyong // pi = 31.4
자바의 키 입력
-
키보드에서 입력된 키를 문자나, 정수, 실수, 문자열등 사용자가 원하는 타입으로 변환해주는 고수준(high-level) 스트림 클래스 Scanner를 사용할 것을 권한다.
-
Scanner는 키 입력을 위한 목적으로 자바 패키지에서 제공하는 클래스이다.
Scanner을 이용한 키 입력
- Scanner 객체는 다음과 같이 생성한다.
Scanner scanner = new Scanner(System.in);
-
Scanner 클래스는 사용자가 입력하는 키 값을 공백으로 구분되는 토큰 단위로 읽는다.
-
Scanner를 사용하기 위해서는 프로그램의 맨 앞줄에 다음 import 문이 필요하다.
import java.util.Scanner;
-
import문은 Scanner 클래스의 결로명이 java.util.Scanner임을 알려준다.
-
Scanner 스트림 닫기 : Scanner의 사용을 종료하려면 다음과 같이 닫아 준다.
scanner.close();
- Scanner를 이용한 키 입력 연습
import java.util.Scanner;
public class ScannerEx {
public static void main(String args[]) {
System.out.println("이름, 도시, 나이, 체중, 독신 여부를 빈칸으로 분리하여 입력하세요");
Scanner scanner = new Scanner(System.in);
String name = scanner.next(); // 문자열 토큰 읽기
System.out.println("당신의 이름은 " + name + "입니다.");
String city = scanner.next(); // 문자열 토큰 읽기
System.out.println("당신이 사는 도시는 " + city + "입니다.");
int age = scanner.nextInt(); // 정수 토큰 읽기
System.out.println("당신의 나이는 " + age + "살입니다. ");
double weight = scanner.nextDouble(); // 실수 토큰 읽기
System.out.println("당신의 체중은 " + weight + "kg입니다. ");
boolean single = scanner.nextBoolean(); // 논리 토큰 읽기
System.out.println("당신의 독신 여부는 " + single + "입니다. ");
scanner.close(); // scanner 스트림 닫기
}
}
Reference
- 책 - 명품 자바 에센셜