T_era

[JAVA] 변수 본문

Programing/Java

[JAVA] 변수

블스뜸 2025. 3. 28. 16:50

자바의 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을 사용하기 위해선 어떻게 해야할까?
    1. globalVar을 클래스 변수로 만든다. 간단하게 static int로 선언하면된다.
    2. 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