첫 번째 변수
1. 변수란?
* 데이터를 저장하기 위해 메모리에 공간을 만들어 할당하고, 이름을 부여한 것
* 데이터의 저장과 참조를 위해 할당된 메모리 공간
1) 지역변수
- 메서드 내에서만 사용할 수 있는 지역 변수, 메서드 내에서 선언된 변수
- 메서드가 시작될 때 생성됨
- 메서드 종료 시 소멸
- 블록 변수: 메서드 내에서 다른 블록(if, for 등) 내에서 선언된 변수
2) 멤버 변수(인스턴스 변수)
- 클래스에 선언된 변수
- 클래스의 멤버 역할을 하는 멤버 필드
- 클래스 내 여러 메서드 간에 공유 가능하며 클래스 외부에서 호출 가능
3) 클래스 변수(정적 변수)
2. 변수 선언
>데이터타입 변수명;
>int num;
* int num;
* int -데이터타입 / 정수를 저장할 메모리 공간을 할당하겠다.
* num - 해당 변수에 접근할 때에는 num 이라는 이름을 사용하겠다.
3. 가치 할당
* 변수 선언 후 값 할당
> int a;
> a = 23;
* 선언과 동시에 초기화
> int a = 23;
* 여러 변수 동시에 선언, 동시 할당
> int a=10, b=20;
* 여러 변수 동시에 선언 후 할당
> int a, b;
> a=10;
> b=20;
* 변수끼리의 할당
>int a=10, b;
>b=a;
class VarTest{
public static void main(String() args){
int a; //변수선언
a = 10; // 값 할당
int b = 20; //선언과 동시에 값 할당
int c=30, d=40; //여러개 동시에 선언과 할당
int e,f;
e=100;
f=200;
int k=45;
int n = kl
}
}
4. 변수의 범위
- 중괄호 {}로 묶인 블록 내에서 선언된 변수는 블록이 종료될 때 소멸됩니다.
단일 블록
{
//암호
}
중첩된 블록
{
인티;
{
인티; //오류 중첩된 블록에서 같은 변수를 사용할 수 없습니다.
}
}
다른 블록
{
정수 나
}
{
정수 i; // 블록은 다르며 사용할 수 있습니다.
}
class ScopeTest
{
public static void main(String() args)
{
// 변수의 범위(Scope)
//{} 블럭 내에서 선언된 변수는 블록을 빠져나가면 소멸
//=> 메서드 내에서 선언된 변수는 해당 메서드가 종료되면 소멸
int a=10;//main 메서드 내에서 사용 가능
System.out.println(a);
//for(int a=0;a<3;a++){} => error main메서드의 a변수 사용 불가
for(int i=0;i<3;i++){
System.out.println(a);
}
for(int i=0;i<4;i++){
int k=30;
System.out.println(k);
}
System.out.println(a);
//System.out.println(i); i는 for 블록 탈출 후 소멸
//System.out.println(k); k는 for 블록 탈출 후 소멸
}
}
2. 데이터 유형
-
기본 데이터 유형
- 바이트 – 1바이트 정수
- short – 2바이트, 정수
- int – 4바이트, 정수
- long – 8바이트, 정수
- Float – 4바이트, 실수
- double – 8바이트, 실수
- char – 2바이트, 문자
- 영어, 한글 등의 문자를 저장하여 사용합니다.
- 실제로 해당 문자의 유니코드 값이 저장됩니다.
문자 a = ‘A’; => 문자 a=65;
- 영어, 한글 등의 문자를 저장하여 사용합니다.
- 부울 – 1바이트, 논리(참/거짓)
-
참조 유형
- 코드 – 코드
-
예 – 숫자
public class VarTest{ public static void main(String() a){ byte a = 127; //-128 ~ 127 short b = 32000; int c = 2100000000; //21억 long d = 21000000000L;//900경, int의 범위를 넘어설 경우 뒤에 L을 붙인다.
long e=(long)a*b*c; //byte*short*int => int*int*int로 자동 형변환된다.
//값이 int의 범위를 벗어나 잘못된 결과가 나오므로, (Long)을 이용해 형변환해준디. } } -
예 – 문자 유형
public class VarTest{ public static void main(String() a){ byte a = 127; //-128 ~ 127 short b = 32000; int c = 2100000000; //21억 long d = 21000000000L;//900경, int의 범위를 넘어설 경우 뒤에 L을 붙인다.
long e=(long)a*b*c; //byte*short*int => int*int*int로 자동 형변환된다.
//값이 int의 범위를 벗어나 잘못된 결과가 나오므로, (Long)을 이용해 형변환해준디. } }
3. 캐스팅
-
타입캐스팅이란
- 작업을 위한 다양한 데이터 유형을 통합하기 위한 변환
- 산술에서
- 피연산자의 더 큰 데이터 유형을 사용한 연산
- 교체할 때
- 왼쪽 및 오른쪽 유형이 일치해야 합니다.
- 왼쪽 및 오른쪽 유형이 일치해야 합니다.
-
전환 유형을 입력하세요.
- 자동 유형 변환
- 작은 데이터 영역을 큰 영역에 할당
- 가치 손실 없는 변화
- 명시적 직업
- 큰 범위의 데이터를 작은 범위로 매핑
- 가치의 중요한 부분이 손실되지 않은 경우에만 수행해야 합니다.
- 자동 유형 변환
자동 캐스팅 규칙
바이트 – short – int – long – float – double
char – int – long – float – double
명시적 직업
수영 선수 a = 3.14f;
intb = (정수)a;
public class ConversionTest{
public static void main(String() a){
long a = 2580L;
float b = a; //자동형변환
double c = 23.489;
float d = (float)c; //명시적 형변환
}
}
-
래퍼 클래스
-
데이터 유형을 효율적으로 관리하기 위해 생성된 데이터 유형 교체 클래스입니다.
-
기본 변수도 객체로 취급해야 할 때 사용됩니다.
-
Boolean / Character / Byte / Short / Integer / Long / Float / Double
정수. MAX_VALUE
정수.MIN_VALUE 등 -
문자열 => 숫자 유형 변환
문자열 a = “12345”;
intb = (정수)a; //실수문자열 a = “12345”;
int b = 정수 parseInt(a); // 문자열을 정수로 변환Float.parseFloat()
Double.parseDouble()
Byte.parseByte() -
숫자 문자열 => 문자형 변환
정수 a = 10;
문자열 b = Integer.toString(a);Double.toString()
Long.toString()
Float.toString()
-