
1) 변수 이름은 숫자로 시작할 수 없다
2) 이름에 공백이 들어갈 수 없음
3) 자바의 예약어를 변수 이름으로 사용할 수 없다
4) 변수 이름에는 영문자(a-z,A-Z), 숫자(0-9), 달러 기호($) 또는 밑줄(_)만 사용할 수 있다.
소문자로 시작하는 낙타 표기법
변수 이름은 소문자로 시작하는 것이 일반적이다. 여러 단어로 이루어진 변수 이름의 경우, 첫 번째 단어는 소문자로 시작하고 그 이후의 각 단어는 대문자로 시작하는 낙타 표기법(camel case)를 사용한다. (예:
orderDetail , myAccount )
낙타표기법
낙타표기법(Camel Case)은 프로그래밍에서 변수, 함수, 클래스 등의 이름을 지을 때 많이 사용하는 표기법 중 하나이다. 이 표기법의 이름은 작성한 이름이 여러 단어로 구성되어 있을 때, 각 단어의 첫 글자가 대문자로 시작 하고, 이 대문자들이 낙타의 등봉처럼 보이는 것에서 유래했다. 낙타표기법을 사용하면 이름에 공백을 넣지 않고 도 여러 단어를 쉽게 구분할 수 있으므로, 변수의 이름을 이해하기 쉽게 만들어준다. 또한, 대부분의 프로그래밍 언어에서는 이름에 공백을 포함할 수 없기 때문에, 낙타표기법은 이런 제한을 우회하는 좋은 방법이다.
자바 언어 관례 정리
클래스는 대문자로 시작, 나머지는 소문자로 시작
자바에서 클래스 이름의 첫 글자는 대문자로 시작한다. 그리고 나머지는 모두 첫 글자를 소문자로 시작한다. 여기 에 낙타 표기법을 적용하면 된다. 이렇게 하면 모든 자바 관례를 다 외울 수 있다!
예시: 클래스는 첫 글자 대문자, 나머지는 모두 첫 글자 소문자로 시작 + 낙타 표기법
클래스:Person,OrderDetail
변수를 포함한 나머지:firstName,userAccount여기에 예외가 딱 2개 있다.
상수는 모두 대문자를 사용하고 언더바로 구분한다. (상수는 뒤에서 학습)USER_LIMIT
패키지는 모두 소문자를 사용한다. (패키지는 뒤에서 학습)org.spring.boot
package scope;
public class Scope1 {
public static void main(String[] args) {
int m = 10; //m 생존 시작
if (true) {
int x = 20; //x 생존 시작
System.out.println("if m = " + m); //블록 내부에서 블록 외부는 접근 가능
System.out.println("if x = " + x);
} //x 생존 종료
//System.out.println("main x = " + x); //오류, 변수 x에 접근 불가
System.out.println("main m = " + m);
} //m 생존 종료
System.out을 통해서 출력했듯이System.in 을 통해서 사용자 입력을 받으려면 여러 과정을 거쳐야해서 복잡하고 어렵다.Scanner 라는 클래스를 제공한다. 이 클래스를 사용하면 사용자 입력을 매우 편리 하게 받을 수 있다.package scanner;
import java.util.Scanner;
public class Scanner1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("문자열을 입력하세요:");
String str = scanner.nextLine(); // 입력을 String으로 가져옵니다. System.out.println("입력한 문자열: " + str);
System.out.print("정수를 입력하세요:");
int intValue = scanner.nextInt(); // 입력을 int로 가져옵니다. System.out.println("입력한 정수: " + intValue);
System.out.print("실수를 입력하세요:");
double doubleValue = scanner.nextDouble(); // 입력을 double로 가져옵니다. System.out.println("입력한 실수: " + doubleValue);
}
}
int[] students와 같은 배열 변수에는 배열을 담을 수 있다. 배열 변수에는 10, 20같은 값이 아니라 배열이라는 것을 담는다.// 배열 변수 선언
int [] students;
// 배열 생성
students = new int [10];
new int[5]라고 입력하면 총 10개의 int형 변수가 만들어진다.new int[5]라고 하면 그 내부값을 자동으로 초기화한다. 숫자는 0, boolean은 false, String은 null(없다는 뜻)으로 초기화된다.int[] students = {90, 80, 70, 60, 50};
// 오류
int[] students;
students = {90, 80, 70, 60, 50};
package method;
public class MethodValue1 {
public static void main(String[] args) {
int num1 = 5;
System.out.println("1. changeNumber 호출 전, num1: " + num1);
changeNumber(num1);
System.out.println("4. changeNumber 호출 후, num1: " + num1);
}
public static void changeNumber(int num2) {
System.out.println("2. changeNumber 변경 전, num2: " + num2);
num2 = num2 * 2;
System.out.println("3. changeNumber 변경 후, num2: " + num2);
}
}
변수 이름은 일반적으로 명사를 사용한다. 한편 메서드는 무언가 동작하는데 사용하기 때문에 일반적으로 동사로 시작 한다.
이런 차이점 외에는 변수 이름과 메서드 이름에 대한 규칙은 둘다 같다.
변수명 예): customerName , totalSum , employeeCount , isAvailable
메서드명 예): printReport() , calculateSum() , addCustomer() , getEmployeeCount() ,setEmployeeName()
김영한 - 자바입문