T_era
[JAVA] 변수 본문
자바의 packege
- 클래스를 용도나 기능별로 묶어 그룹화한 것
- 클래스를 유일하게 만들어주는 식별자 역할
- package1과 package2가 있으면 각자 hello.class를 가지고 있어도 구분하여 사용할 수 있음
- 하지만 이럴경우 직접 호출해 객체를 생성하는 방법도 있지만 대부분의 경우 import를 사용
ex) import package1.hello 또는 import package1.* // 여기서 *은 전체를 의미
*** 서로 다른 패키지에서 같은 클래스명을 가지고 있고, 전부 import한 경우 호출할 때 package를 전부 작성해야한다***
변수
지역변수와 전역변수
- 지역변수와 전역변수는 변수를 선언한 위치에 따라 나뉜다
public class Var1 {
int globalVar = 10;
public static void main(String[] args) {
int localVar = 20;
System.out.println(globalVar); // 작동안함
System.out.println(localVar); // 작동함
}
void test(){
System.out.println(globalVar); // 작동함
System.out.println(localVar); // 작동안함
}
}
- main안에 globalVar을 사용하지 못하는 이유는 main은 static형태이기 때문에 바깥에서 작성한 인스턴스 변수를 사용할 수 없음
- main안에서 globalVar을 사용하기 위해선 어떻게 해야할까?
- globalVar을 클래스 변수로 만든다. 간단하게 static int로 선언하면된다.
- Var1클래스를 객체로 만든다. main안에 Var1 var1 = new Var1(); 선언하여 var1.globalVar을 사용
- test 안에서 localVar을 사용하려면 어떻게 해야할까? localVar을 전역변수로 선언하는 것이 가장 권장하는 방법이다
*** 인스턴스 변수와 클래스 변수** *
- 인스턴스 변수란 호출될 때 해당 클래스가 객체로 생성될 때 만들고 사라질때 지워지는 변수이다.
- 클래스 변수란 프로그램이 처음 실행될 때 생성되고 프로그램이 종료될 때 사라지는 변수이다.
- gloablVar을 static int globalVar로 선언했을때 해당 변수는 클래스변수가 되고 클래스 변수는 아래와 같이 사용할 수 있다.
class Var2{
void staticTest(){
Var1.globalVar = 10;
}
}
- 장단점이 있지만 용도에 맞게 사용하는게 중요하다.
아스키코드
char a = 'a'; // 97
int b = a; // 97
System.out.println(b);
- 위의 코드가 작동할까? 작동한다면 어떻게 작동하고 어떻게 출력이 될까?
- 그렇다면 char a = ‘a’; a+10;을 했을 때 작동할까?
'Programing > Java' 카테고리의 다른 글
| [JAVA] 조건문 (0) | 2025.03.28 |
|---|---|
| [JAVA] 연산자 (0) | 2025.03.28 |
| [JAVA] BufferedReader와 BufferedWriter 그리고 StringTokenizer (0) | 2025.03.27 |
| [JAVA] 문제풀이 : 가위바위보 (1) | 2025.03.26 |
| [JAVA] 문제풀이 : 단어 퀴즈 만들기 (0) | 2025.03.26 |