기본용어
식별자
자바 코드에서 사용되는 변수, 메소드, 클래스, 배열 등의 이름
대소문자 구분
처음부터 숫자가 나올 수 없음
예약어(명령어)는 사용 못 함
클래스
대문자로 시작
두 단어가 합쳐질 땐 두번째 단어의 첫글자를 대문자로 지정
ex) HellowText
메소드
소문자로 시작
두번째 단어의 첫글자를 대문자
ex) getAge()
변수
소문자로 시작
두번째 단어의 첫글자를 대문자
ex) int maxCount;
상수(변하지 않음)
모든 문자를 대문자로 작성
두 단어가 합쳐질 경우? '_' 사용
final로 작성한다.
ex) final int MAX_ANGLE = 100;
자바주석
// 한줄 --> ctrl + 7
/* */ 여러줄 --> Ctrl + Shift + /, Ctrl + Shift + \(해제)
실행 단축키 F11
변수 - 데이터 타입
1. 기본형 (=기본 데이터 타입)
8개 (boolean, char, byte, short, long, float, double)
실제 값을 저장하고 있음
2. 참조형 (=레퍼런스 타입)
기본형을 제외한 나머지(String, System 등)
객체의 주소를 저장(4Byte, 16진수)
종류 | 크기 | 값 |
byte | 1byte(8bit) | (-128~127) |
short | 2byte(16bit) | (-32768~32767) |
char | 2byte(16bit) | 유니코드(0~65535) |
int | 4byte(32bit) | 약 -21억 ~ 21억 |
long | 8byte(64bit) | |
float | 4byte(32bit) | |
double | 8byte(64bit) | |
boolean | 1byte |
public class DataTypeTest {
public static void main(String[] args) {
boolean var_boolean = true;
// 변수명 = 값
byte var_byte = 127;
//short
short var_short = 32767;
//char
char var_char1 = 66;
char var_char2 = 'A';
char var_char3 = '\u0041';
char var_char4 = '가';
//그 이상의 숫자들
//int
int var_int = 100000;
int num0 = 011;
int num0X = 0x12; //8진수
int num0B = 0B0111; //16진수
int binaryInt = 0b1111_0000_1010_0000;
//long
long var_long = 1000000;
long positionNumber = 122_122_122_122L;
//float
float var_float = 3.14f;
//double
double var_double = 3.14;
//출력
System.out.println("var_boolean : " + var_boolean);
System.out.println("var_byte : " + var_byte);
System.out.println("var_short : " + var_short);
System.out.println("var_char1 : " + var_char1);
System.out.println("var_char2 : " + var_char2);
System.out.println("var_char3 : " + var_char3);
System.out.println("var_char4 : " + var_char4);
System.out.println("var_int : " + var_int);
System.out.println("num0 : " + num0);
System.out.println("num0X : " + num0X);
System.out.println("binaryInt : " + binaryInt);
System.out.println("var_long : " + var_long);
System.out.println("positionNumber : " + positionNumber);
System.out.println("var_float : " + var_float);
System.out.println("var_double : " + var_double);
}
}
형변환
public class ConversionTest {
/*
* 형 변환 예제
*/
public static void main(String[] args) {
// 큰 타입으로 자동변환
byte var_byte1 = 10;
int var_int1 = var_byte1;
System.out.println("var_int1 = " + var_int1);
// 큰 타입의 값을 작은 타입의 변수에 할당
// 명시적으로 형 변환해 주지 않으면 컴파일 오류 발생
int var_int2 = 100;
byte var_byte2 = (byte)var_int2;
System.out.println("var_byte2 = " + var_byte2);
//char와 short
short var_short1 = 200;
char var_char1 = (char)var_short1;
System.out.println("var_char1 = " + var_char1);
//int 타입보다 작은 타입의 정수 연산 : int 형으로 변환됨
//int 형보다 작은 타입의 변수에 값을 할당 하려면 명시적으로 형변환해주어야함
byte var_byte3 = 20;
byte var_byte4 = 40;
byte var_result1 = (byte)(var_byte3 + var_byte4);
char var_char2 = 'A';
int var_int_result = var_char2 + 1;
System.out.println("var_int_result = " + var_int_result);
//연산 시 피연산자 중 보다 큰 타입으로 형 변환된 후 연산됨
int var_int3 = 100;
long var_long1 = 100;
long var_long_result1 = var_int3 + var_long1;
System.out.println("var_long_result1 = " + var_long_result1);
//정수와 실수를 연산하면 실수 타입으로 자동 형 변환됨
long var_long2 = 100;
float var_float1 = 3.14f;
float var_float_result1 = var_long2 + var_float1;
System.out.println("var_float_result1 = " + var_float_result1);
//float 타입과 double 타입을 연산하면 double 타입으로 변환
float var_float2 = 3.33f;
double var_double3 = 4.22;
double var_long_result2 = var_float2 + var_double3;
System.out.println("var_long_result2 = " + var_long_result2);
}
}
큰 타입은 자동변환
큰 타입 값을 작은 타입으로 변환하려고 할 땐 형변환이 필요함
기본타입 보다 작은 타입끼리의 연산을 할 때에도 형변환이 필요함
정수와 실수에서는 실수 타입으로 자동 형 변환
float와 double에서는 후자가 기본형이라서 자동으로 변환이 되고, double에서는 숫자 뒤에 d를 생략해도 됨
Args(Arguments)
Args-Arguments, 인수, 인자 등...
값을 받을 수 있는 방법은 다양하지만, 그 중에서도 문자열 타입으로 입력 받는 방법이다. 우리가 매일 쓰는 public static void main(String[] args) 자세히 배우지 않았지만 여기서 String[] args 이 부분은 실행 시 받은 인자 값을 String 타입으로 받는 뜻이다.
public class ArgsTest {
public static void main(String[] args) {
String args1 = args[0];
String args2 = args[1];
System.out.println("args1 = " + args1);
System.out.println("args2 = " + args2);
}
}
문자열 String으로 기억장소 args1과 args2를 잡았다. args[0], args[1]은 위쪽 main에 써 있는 args와 같은 공간이다. 다른 콘솔을 통해서 (무슨 값이든) 값을 받아 올 것이고, 배열에 순서대로 값이 입력 될 예정이다. 배열이 0부터 시작하기 때문에 0,1은 두 개의 공간을 가져왔다는 뜻이다. 다만 숫자를 입력해도 문자열로 받아 들일 것이다.
이클립스에서 값을 입력하고 싶다면?
오른쪽 마우스 -> Run As -> Run Configurations -> Main Tab -> Search -> 현재 클래스 선택 -> Arguments Tab -> Program arguments
Run -> Run Configurations -> Main Tab -> Search -> 현재 클래스 선택 -> Arguments Tab -> Program arguments
<성적을 입력 받아서 계산>
public class OperationTest2 {
public static void main(String[] args) {
//성적 계산하기
int total = 0;
int avg = 0;
int kor = Integer.parseInt(args[0]); //국어
int mat = Integer.parseInt(args[1]); //수학
int eng = Integer.parseInt(args[2]); //영어
//parseInt 정수형으로 바꿔서 소수점 이하 자르다.
//외부에서 입력 받는 방법
//입력 받는 방법은 다양하다
//그 중에서 args를 이용해봤음
total = kor + mat + eng;
avg = total / 3;
System.out.println("국어 성적 : " + kor);
System.out.println("수학 성적 : " + mat);
System.out.println("영어 성적 : " + eng);
System.out.println("합 계 : " + total);
System.out.println("평 균 : " + avg);
}
}
위와 같은 방법으로 Args 값을 입력 받아서 성적을 계산하는 방법입니다.
'개발일지 > Java + Spring' 카테고리의 다른 글
[java] 문자열 비교 메소드 3가지(대소문자 구별?) (0) | 2021.09.16 |
---|---|
[java] 객체 설명과 Scanner 객체 불러와서 사용 (0) | 2021.09.16 |
[java] if-else문(로그인처리) (0) | 2021.09.15 |
[java] 다양한 복습 예제(문자열 자르기, 상수, 함수, 연산자) (0) | 2021.09.15 |
[java] 연산자 모음 (0) | 2021.09.15 |