변수 Variable
변수에서 가장 중요 한것
- 변수에 데이터를 할당 하는 방법
- 변수에 할당한 데이터를 가져오는 방법
- 코딩은 이 두가지만 구별 하면 한단계 레벨업
변수에 데이터를 할당 하는 방법
- 변수 선언 : 자료형 변수명 int a;
- 변수 선언 및 초기화 : 자료형 변수명 = 데이터 int a = 0;
- 할당(대입) 연산자 : =
변수에 할당한 데이터를 가져오는 방법
- 변수에 할당하는 것이 아니면 가져오는 것임
- System.out.print(변수명);
기본형 변수 데이터 할당 및 출력
정수형
- int, long
- int : default 21억 미만 저장시 사용
IntVarTest.java
// 변수 선언
int i0;
long l0;
// 변수 초기화
i0 = 0;
l0 = 0L; // 0l 소문자 가능
// 변수 선언과 초기화
int i1 = 1;
long l1 = 1L; // 1l 소문자 가능
// 출력 : 주의 => 변수명과 문자열은 다름
System.out.println("i0");
System.out.println("l0");
System.out.println("i1");
System.out.println("l1");
System.out.println("====");
System.out.println(i0);
System.out.println(l0);
System.out.println(i1);
System.out.println(l1);
실수형
- double, float
- double : default
DoubleVarTest.java
// 변수 선언
double d0;
float f0;
// 변수 초기화
d0 = 3.14;
f0 = 3.14F; // 0f 소문자 가능
// 변수 선언과 초기화
double d1 = 3.14;
float f1 = 3.14F; // 1f 소문자 가능
// 출력
System.out.println(d0);
System.out.println(f0);
System.out.println(d1);
System.out.println(f1);
논리형
- boolean
BoolVarTest.java
// 변수 선언
boolean t0;
boolean f0;
// 변수 초기화
t0 = true;
f0 = false;
// 변수 선언과 초기화
boolean t1 = true;
boolean f1 = false;
// 출력
System.out.println(t0);
System.out.println(f0);
System.out.println(t1);
System.out.println(f1);
문자형
- char
- 한개 문자 저장
- 여러개의 문자(문자열)은 String 객체 사용
CharVarTest.java
// 변수 선언
char c0;
// 변수 초기화
c0 = 'a';
// 변수 선언과 초기화
char c1 = 'b';
// 출력
System.out.println(c0);
System.out.println(c1);
// 아스키 코드값을 넣어도 됨
char c2 = 65;
System.out.println(c2);
참조형
- 객체타입의 참조 주소를 저장
- 기본형 변수 이외에는 모두 참조 변수
- String 클래스 : 문자열을 저장하는 객체 타입
package chapter03;
public class StringEx {
public static void main(String arg[]) {
String name; // 변수 선언
name = "홍길동"; // 변수 초기화
String name2 = "홍길동"; // 선언과 동시에 초기화
String name3 = null; // null값으로 초기화
String name4 = ""; // ""값으로 초기화
System.out.println("name2="+name2);
System.out.println("name3="+name3);
System.out.println("name4="+name4);
}
}
상수와 리터럴
- 상수 : 변수에 데이터 할당 후 변경할수 없는 데이터
- 리터럴 : 소스에 직접 입력된 데이터
package chapter03;
public class ConstEx {
public static void main(String[] args) {
final double PI = 3.14;
//PI = 3.14159; // 변경불가
}
}
변수의 범위(Scope)
- 변수 선언 후 사용 가능한범위
- 자바에서 지역변수는 {} 범위를 가짐
package chapter03;
public class ScopeEx { // 1. 클래스 블럭
int no; // 1. 클래스 블럭 내에서 사용 가능한 변수
public static void main(String[] args) { // 2. main 메서드 블럭
String name; // 2. main 메서드 블럭 내에서 사용 가능한 변수
if (true) {
// 메서드 블럭 안에서 선언한 변수 사용 가능
name = "홍길동";
// if문 블럭안에서 변수 선언
String email = "hong@test.com";
}
// if문 블럭 밖에서 email 변수를 사용하면 에러 발생
//email = "hong@test.com";
}
}
두 변수의 값 교환하기
- cupA = "red", cupB = "blue" 두 컵의 데이터를 교환하시오.
형변환 type casting
- 논리형을 제외하고 형변환 가능
- 자동(묵시적)형변환과 강제(명시적)형변환으로 나눔
자동(묵시적) 형변환
- 큰크기자료형에 작은크기자료형을 할당하는 경우
- byte < short < int < long < float < double
package chapter03;
public class CastingEx {
public static void main(String[] args) {
// 자동형변환 예시
int number = 10; // int 자료형
long number2 = number; // 자동형변환 int < long
float number3 = number2;// 자동형변환 long < float
double number4 = number3; // 자동형변환 float < double
System.out.println(number);
System.out.println(number2);
System.out.println(number3);
System.out.println(number4);
}
}
강제(명시적) 형변환
- 작크기자료형에 큰크기자료형을 할당하는 경우
- 작크기자료형 = (작크기자료형) 큰크기자료형
package chapter03;
public class CastingEx2 {
public static void main(String[] args) {
// 강제형변환 예시
double pi = 3.14; // double 자료형
int pi2 = (int)pi; // 강제형변환
System.out.println(pi2); // 값의 손실 발생
}
}
문자열을 정수로 변환
- Integer 클래스 parseInt 메서드 사용
package chapter03;
public class CastingEx4 {
public static void main(String[] args) {
String s1 = "1";
String s2 = "2";
int i1 = Integer.parseInt(s1);
int i2 = Integer.parseInt(s2);
int add = i1 + i2;
System.out.println(add);
}
}
'Programing > JAVA' 카테고리의 다른 글
제어문 - 반복문 LOOP (1) | 2022.02.23 |
---|---|
제어문 - 조건문 CONDITIONAL (1) | 2022.02.21 |
연산 (0) | 2022.02.21 |
변수란? (0) | 2022.02.17 |
변수 (0) | 2021.04.01 |