-
[Java] variable언어/Java 2024. 10. 23. 10:37
아래 내용은 인프런 김영한의 "자바 입문 코드로 시작하는 자바 첫걸음" 강의 중 변수 섹션에서 자세히 보실 수 있습니다.
- 지역 변수는 반드시 초기화를 해주어야 컴파일 에러가 나지 않는다.
package variable; public class Var6 { public static void main(String[] args) { int a; System.out.println(a); // 컴파일 에러 : 자바 문법에 맞지 않았을 때, 생기는 오류 // 컴파일 에러 부분을 주석 처리해야 다른 파일들이 컴파일 과정에서 잘 작동할 수 있다. } }
- 하지만 변수를 선언만 해주고 sout를 해주지 않았을 때는 오류가 발생하지 않는다. 왜 그럴까?
- 컴파일러는 코드가 컴파일될 때 변수가 사용되지 않는 경우, 즉 변수 선언 후 사용하지 않는 경우에는 문제가 없다고 판단한다. 하지만 sout 처럼 변수를 사용하려고 하면 초기화되지 않은 상태의 변수를 사용하고자 하는 것이므로 컴파일 에러가 발생한다.
- Java의 기본 데이터 타입(int, double,..)은 자동으로 초기화 되지 않기 때문에, 값이 할당되지 않은 상태로 존재한다.
- 기억상 class 등은 자동으로 값이 초기화 된다는 데... 나중에 배운다고 한다. 우선 넘어갔다.
- 리터럴 (literal)
package variable; public class Var6 { public static void main(String[] args) { int a = 100; // 정수 리터럴 double b = 10.5; // 실수 리터럴 String c = "hello world"; // 문자열 리터럴 } }
- 코드에서 프로그래머가 직접 적은 100, 10.5 hello world와 같은 고정된 값을 프로그래밍 용어로 리터럴이라고 한다.
- 즉, 변수에 넣은 변하지 않는 값
- 헷갈렸던 부분은 파이썬에서 a = 3, for i in a: 하게 되면 a는 리터럴이 아니기 때문에 오류가 났던 적이 있다.
- 파이썬에서의 리터럴은 다른거냐? 아니다 단지 " 발음만 " 비슷해서 헷갈렸었다.
- 파이썬에서의 리터럴은 iterable 이다. iterable은 "반복 가능한 "이다.
- 따라서 for i in a의 의도가 a번 만큼 반복하고 싶은 것이라면 for i in range(a): 를 해주는 것이다.
실무에서의 타입
- 자료형 타입들이 매우 많은 데 다 외워야 하나?
- 다행이도 실무에서는 int, long double, String 4가지 정도만 쓰인다고 한다.
- 그 이유는 메모리 용량이 싸다. 그래서 실무에서는 개발 속도나 효율에 초점을 맞추는 것이 더 효과적이다.
- Java의 학습 목적이 코딩테스트가 아니기 때문에 이 부분이 와닿았다.
- Java는 기본으로 4byte(int 의 크기)를 효율적으로 계산하도록 설계되어 있기 때문에 int를 많이 사용한다.
- float 타입은 표현 길이와 정밀도가 낮다. 따라서 실수형은 double형을 많이 사용하는 것이다.
- char형 타입 또한 마찬가지이다. "하나의 문자" 를 사용할 떄도
char a - 'a'; String = "a";
- String 을 사용하자.
자바의 언어 관례(라고 하고 규칙이라 말하자)
- 규칙이라고 말한 이유는 관례라고 하면 안 지켜도 될 거 같지만, 실무에서는 혼자 코딩 하는 것이 아니기 때문에 가독성이 중요하다. 따라서 규칙이라고 생각하고 꼭 지키고 익숙해지도록 노력하자.
- 클래스는 첫글자 대문자, 나머지는 모두 소문자. + 카멜 케이스
- class Person, class OrderData
- 변수를 포함한 나머지 : 소문자 + 카멜케이스
- int student, int studenNumber
- 예외.1
- 상수는 모두 대문자를 사용하고 언더바로 구분
- USER_LIMIT
- 상수는 모두 대문자를 사용하고 언더바로 구분
- 예외 2
- 패키지는 모두 소문자를 사용
- org.spring.boot
- 패키지는 모두 소문자를 사용
- 변수의 이름은 의미 있고, 그 의미를 명확하게 설명
- a, b 는 단순한 예제에서나...
- studentCount 등과 같이 변수의 이름을 보고 추측하기 쉬워야 한다.
'언어 > Java' 카테고리의 다른 글
[Java] 반환타입, 메서드 오버로딩 (0) 2024.10.30 [Java] 메서드 (feat. 인수 != 매개변수) (2) 2024.10.29 [Java] 배열, 향상된 for문 (0) 2024.10.28 [Java] 형 변환, 계산과 형 변환, 스캐너 (0) 2024.10.26 [Java] operator and conditional statement (3) 2024.10.24