본문 바로가기

국비과정/JAVA (기초)

20230602 _[2일차]_01. 변수

[int_정수타입] & [bouble_실수타입]

 

다음 형식으로 기본 메소드를 정의** (아래 형식에서 하나라도 빠지면 아래의 에러 뜸)
  public static void main(String[] args)

package jun02;

public class Hello {  // Hello 클래스
	// 메인 메소드는 반드시 이 모양이어야 합니다.
	public static void main(String[] args) {
		int number;   // 변수선언
		number = 100; // 변수에 값 대입

		int num = 101; // 변수선언 + 값대입 == 변수 초기화
		// 리터럴 = 고정된 값  (ex 100, 101)
		
		int num1 = 3.14 // 오류남
		double num1 = 1.0009;
	}
}

// 변수 : 변하는 수 <---> 상수 : 변하지 않는 수
// 프로그램이 진행할 때 중간의 값을 저장해두기 위한 공간
// 데이터타입 변수이름;   = 변수 선언 = 명령어

등호(=)는 값을 넣는다는 의미,  같다는 의미는 등호두개(==)

 

[문자열] & [형변환_ Cast]

package jun02;

public class Hello { 
	public static void main(String[] args) {
		
		int num = 101;
		double num1 = 1.0009;
		
		String num2 = "Hello"; // 문자열 ""
		// 대입기호 기준으로 양 변의 데이터 타입이 동일해야 대입가능
        
		int num3 = num;   // 양쪽 데이터타입 동일(int) ->가능
		num1 = 3.3333;   // 양쪽 데이터타입 동일(double) ->가능

		num3 = (int) 10.3333;      // 형변환 = 데이터타입 변환 (cast = 값의절삭)
		System.out.println(num3);  // 10 
	}
}

* 형변환 (double -> int)

num3 에 3.33333 값을 정수(int)형태로 저장 (소수점 이하 수들은 절삭)

 

[자동대입_프로모션]

package jun02;

public class Hello { 
	public static void main(String[] args) {
				
		int iNumber = 14;
		double dNumber = iNumber;     // 자동 대입 = 프로모션
		System.out.println(dNumber);  // 14.0  표기는 실수로!
	}
}

* 프로모션 (int -> double)

왼쪽(double)이 오른쪽(int)보다 더 큰 타입이라 int가 자동 대입 (정수타입 선언은 실수로도 가능)

 


[변수] _ p.48

 

변수 : 변수는 변하는 값을 나타내는 문자다.

다양한 값이나 양을 넣을 수 있는 빈 자리를 나타내는 기호.

종종 주어진 집합에 있는 임의의 원소를 나타낼 때 쓴다.

변수는 수뿐만 아니라 벡터, 행렬과 함수를 나타낼 때도 쓴다.

 

  • (비NCS) 응용SW 기초기술 활용

변수는 우리가 이미 익숙하게 사용하고 있는 개념입니다.

예를 들어 하나의 연산식이 있을 때

1 + 2 = 3

3 + 3 = 6
8 - 5 = 3

 

  • 변수를 사용하는주 목적

같은 타입(type)의 값이 프로그램 실행시에 자주 변경되어야 할 때, 이를 변수에 담아서 활용하기 위함. 

 

 

  • 변수 선언(초기화) 규칙 (꼭 기억해주세요******) 

1. 변수는 특정 블럭{} 내부에 어디서건 선언 가능합니다.

 만약 메소드 바디 내부에서 선언 = 지역 local 변수

 클래스 바디에서 선언되어지면 = 인스턴스 instance 변수 (나중에 객체지향시간에 배움)

 

2. 변수가 처음 선언될 때 반드시 변수의 좌측에 변수타입(type), 일명 데이터 타입이 선언되어야 합니다.

 

3. 변수는 한번 선언되면 그 변수를 포함하고 있는 블럭 내에선 절대 재선언이 불가능 합니다.

 

4. 같은 타입의 변수는 한 라인에 ; (세미콜론)없이 계속 선언 가능

 각 변수는 , (콤마)로 구분하여 마지막에 ;(세미콜론)을 붙입니다.

 

5. 지역변수는 반드시 사용 전에 초기화 되어야 합니다.

 

package jun02;

public class Variavle01 {
	int num = 100;      // 인스턴스 변수 = 클래스 아래 작성
	
	public static void main(String[] args) {
		int num = 100;  // 지역변수 = 메소드 속에서 생성
		num = 10;                 // 활용할때는 변수명만
        System.out.println(num);
        
	}
    	public static void print() {
		int num = 100;   // 같은 메소드{} 내에서 중복 선언은 불가능
                         // 다른 메소드에{}에서 같은 이름의 변수로 선언 가능.
	
    }    // 인스턴스변수와 지역변수는 쓰임새가 달라서 중복선언 가능 (나중에*)

}

*단축키* 

코드정렬 : ctrl + shift + f

package jun02;

public class Variable01 {
	public static void main(String[] args) {
		{
			int num2 = 100;
		}
		System.out.println(num);  // {} 괄호가 닫히면서 num 인식을 못함 
	}
}

변수는 기본적으로 선언된 블록 내에서만 사용가능

*변수 선언 위치 중요 (p. 55)

 

package jun02;

public class Variable01 {
	public static void main(String[] args) {
    
		int num2, num3, num4, num5;            // 선언만(같은 데이터타입 나열)
		int num6 = 10, num7 = 11, num8 = 12;  // 초기화
		
		System.out.println(num2);  // 초기화x (error)
		System.out.println(num6);  // 초기화o
        // 지역변수는 초기화 후 사용할 수 있습니다.
	}
}

변수에 값이 저장되지 않으면 변수가 생성되지 않음. 선언과 생성은 다름!! (p.50)

변수에 최초로 값이 저장되면 변수생성 = 변수 초기화, 그때의 값 = 초기값


String str = "1";               //  여기서 1은 숫자가 아닌 string (문자열)
num2 = Integer.parseInt(str);   // 스트링을 int로 변환
System.out.println(str);

나중에 다시 배울예정 **참고**


[이름 만들기] _ 변수명, 클래스명, 메소드명, 상수명

 

1. 사용 가능한 문자 : 영어 소문자, 대문자, 숫자, $, _

 단, 숫자는 이름 첫머리에 올 수 없습니다.

 

2. 클래스명 : 위 사용가능한 문자 조합합니다.

 반드시 첫글자는 대문자여야 합니다.

 한 단어 이상의 단어들의 조합일 때는 새로운 단어 첫머리 글자를 대문자로 합니다. = 파스칼 표기법

 

3. 메소드명, 변수명 : 사용가능한 문자를 조합합니다.

 첫글자는 소문자로 시작합니다. 

 두 단어의 결합이라면 뒤에 오는 단어 첫글자를 대문자로 합니다. = 카멜표기법

 

4. 상수명 : 모든 단어를 대문자로 구성.

 두 단어의 결합이라면 두 단어 사이에 _ 붙입니다. = 스네이크 표기법

 

5. 사용할 수 없는 이름 : 예약어는 사용 불가

  자바에서 프로그래밍 진행에 필요한 단어를 미리 등록 사용하고 있습니다.

package jun02;

public class AppleKorea {       // 파스칼 표기법
	public static void main(String[] args) {
		int checkNumber = 10;   // 카멜 표기법
		int POINT_NUMBER = 10;  // 스네이크 표기법
		String str = "";        // ctrl + String클릭 -> Open Declaration 
	}
}

public class Variable02 {
	public static void main(String[] args) {
		int $_ = 10;
	}

}

* 파스칼 표기법 : 각 단어의 첫 글자를 대문자로 표기

* 카멜 표기법 : 소문자로 시작하여 이어지는 단어의 시작은 대문자로 표기

* 스네이크 표기법 : 단어 사이에 underscore(_)를 활용하여 표기