자바 프로그램의 기본 구조
// hello.java
public class Hello {
public static int sum(int n, int m) {
return n + m;
}
// main() 메소드에서 실행 시작
public static void main(String[] args) {
int i = 20;
int s;
char a;
s = sum(i, 10); // sum() 메소드 호출
a = '?';
System.out.println(a); // 문자 '?' 화면 출력
System.out.println("Hello"); // "Hello" 문자열 화면 출력
System.out.println(s); // 정수 s 값 화면 출력
}
}
class 이름 = 파일 이름
class 내 main은 무조건 public static void로 선언
식별자
클래스, 변수, 상수, 메소드 등에 붙이는 이름
식별자의 원칙
1. 자바 언어의 키워드, ‘@’, ‘#’, ‘!’와 같은 특수 문자, 공백 또는 탭 사용 불가
2. ‘_’, ‘$’, 유니코드 문자, 한글 사용 가능
3. 식별자의 첫 번째 문자로 숫자는 사용 불가
// 식별자 이름 예시
int name;
char student_id; // '_' 사용 가능
void $func() {} // '$' 사용 가능
class Monster3 { } // 숫자 사용 가능
int whatsyournamemynameiskitae; // 길이 제한 없음
int barChart; int barchart; // 대소문자 구분. barChart와 barchart는 다름
int 가격; // 한글 이름 사용 가능
자바의 데이터 타입
>> 기본 타입 8개
- boolean
- char
- byte
- short
- int
- long
- float
- double
>> 레퍼런스 타입 1개
- 배열(array)에 대한 레퍼런스
- 클래스(class)에 대한 레퍼런스
- 인터페이스(interface)에 대한 레퍼런스
>> 문자열
기본 타입 X, String 클래스로 표현
문자열끼리 연산 시 문자열 자체를 연결함
>> 리터럴
프로그램에서 직접 표현한 값
- 기본 타입 종류: 정수 리터럴, 실수 리터럴, 문자 리터럴(''), 특수문자 리터럴, 논리 리터럴
- 기본 타입 외: null 리터럴, String 리터럴("")
>> 상수
final 키워드 사용 => 실행 중 값 변경 불가
선언 시 초기값을 꼭 지정해야함
데이터 타입 변환
- 자동 타입 변환 (캐스팅): 작은 타입을 큰타입으로
- 강제 타입 변환 (just 괄호) - 데이터 손실 가능
Scanner
Scanner 클래스 : java.util.Scanner 클래스를 반드시 import 해주어야 함.
System.in에게 키를 읽게 하고, 이를 다양한 데이터 타입으로 변환하여 리턴
입력되는 키 값을 공백으로 구분된 토큰 단위로 끊어 읽음
import java.util.Scanner; // import 문 필요
...
Scanner a = new Scanner(System.in); // Scanner 객체 생성
주요 메소드
int nextInt() => 자료형만 바꿔서 사용, 예시의 경우 다음 토큰을 정수형 타입으로 리턴한다는 의미
import java.util.Scanner;
public class ScannerEx {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("이름, 도시, 나이, 체중, 독신 여부를 빈칸으로 분리하여 입력하세요.");
Scanner scanner = new Scanner(System.in);
String name = scanner.next();
System.out.print("이름은 "+name+", ");
String city = scanner.next();
System.out.print("도시는 " + city +", ");
int age = scanner.nextInt(); // 정수 읽기
System.out.print("나이는 " + age + "살, ");
double weight = scanner.nextDouble(); // 실수 읽기
System.out.print("체중은 " + weight + "kg, ");
boolean single = scanner.nextBoolean(); // 논리값 읽기
System.out.println("독신 여부는 " + single + "입니다.");
scanner.close(); // scanner 닫기
}
}
'Language > JAVA' 카테고리의 다른 글
자바기반응용프로그래밍 - main() 메소드로 인자 전달 (0) | 2022.04.11 |
---|---|
자바기반응용프로그래밍 - 패키지, 접근 지정자, static, final (0) | 2022.04.10 |
자바기반응용프로그래밍 - 메소드, 레퍼런스, 오버로딩, 가비지 컬렉션 (0) | 2022.04.10 |
자바기반응용프로그래밍 - 객체 지향을 위한 클래스와 객체 (0) | 2022.04.09 |
자바기반응용프로그래밍 - 연산자, 조건문 (0) | 2022.04.08 |