2.1 identifier 와 keyword

작성자 : 진은영 ( 2004-02-17)

목차
  • comment
  • semicolons, blocks, whitespace
  • identifier

2.1.1 comment

코딩을 하다가 주석을 처리해야 할 때가 있다. 자바에서는 아래와 같이 3가지를 지원한다.
// : 한줄 주석
/* */ : 여러줄 주석
/** */ : HTML주석

① //

//주석입니다.
System.out.println( "a" ) ;
//또 주석입니다.
위와 같이 작성하면 화면에 a 라고만 출력하고 "주석입니다" 나 "또 주석입니다"는 출력되지 않는다.

② /* */
주석이 여러줄이 있을 경우에는 일일이 //를 하기가 귀찮을 때도 있다. 이럴때 /* */를 사용하면 좋다.

/*
  주석입니다.
  System.out.println( "a" ) ;
  또 주석입니다.
*/
위와 같이 작성하면 전부 주석처리가 된다.

③ /** */
개발을 다한 후 클라이언트를 위해 Help문서를 작성해야 하는데, 이 문서를 만드는데 도움을 주는 주석이다. 나중에 사용해 보겠다.

2.1.2 semicolons, blocks, whitespace

① ;
Java에서 한 문장이 끝날 때 반드시 끝에 semicolon(;)을 붙여야 한다. 붙이지 않으면 하나의 명령으로 인식하지 못하며 ; 끝날때까지 한 명령으로 인식한다.
System.out.println( "a" + name + "b" ) ;
위 예제는 하나의 코딩이 끝난 후에 ; 를 했기 때문에 정상적이다.
System.out.println( "a" +
name + "b" ) ;
위 예제는 한줄이 끝나도 ; 이 없기 때문에 다음줄로 내려가 ; 을 만날때까지 하나의 명령으로 인식한다.

② { }
Block이라고 하는 것은 curly brace {, }로 묶여진 부분을 말한다. 자바에서는 범위에 해당하는 것은 반드시 {} 로 묶어야 한다. 제어구조에서 범위가 한줄인 경우에는 생략할 수 있다. 아래의 예제들은 내용을 몰라도 상관없다. 단지 범위에 해당하는 block을 보자.

class A {
   int a ;
   int b ;
}
A라는 클래스를 지정한 후 A클래스는 두줄을 포함하고 있다.
public static void main( String [] args ){
   System.out.println( "a" ) ;
}
main메소드는 한 줄을 포함하고 있다.
if( a > 0 )
   System.out.println( "a" ) ;
if문의 true문장은 한 줄이기 때문에 {}를 생략했다.

③ whitespace
whitespace라고 하는 것은 space, tab, new line character(흔히 enter key라고 함)를 총칭하는 말이다. Java에서는 이 3개의 문자가 source code안에 얼마든지 포함되어도 문제없다.

public       static void main( String [] args ){

   System.out.println ( "a"      + b ) ;
}
얼마든지 넣어도 상관은 없지만 보기에 않좋으므로 잘 넣어야 한다.

2.1.3 identifier

식별자란 무언가를 식별할 수 있게 하는 이름이다. 자바 식별자는 클래스 이름, 메소드 이름, 변수 이름 등에 사용되어서 그것이 무엇인지 알려주는 역할을 한다.
내가 갑돌이이고 저기 있는 저 사람이 홍길동 이듯이 클래스에도 이름이 필요하고 메소드와 변수에도 이름이 필요한데 이때 쓰이는게 식별자이다. 그냥 구분을 하는데 사용하는 구분자라고 해석해도 된다.
그런데 이런 이름들도 사용하는데 알아야 할 규칙이 있다.
  • 대소문자 구분한다.
  • 길이의 제한은 없다.
  • 첫자는 반드시 A ~ Z, a ~ z, underscore(_), dollor sign($)으로 시작해야 한다.
  • 숫자는 올 수 있지만 숫자로 시작할 수 없다.
  • 자바의 키워드 , true , false , null은 사용할 수 없다.
  • 상수도 사용할 수 없다.

① 사용 예

  • 올바른 식별자의 예
      id
      username
      user_name
      _username
      $username
  • 틀린 식별자의 예
      user name
      2d-studio
      this
      #args

② 예약어
예약어로 이미 지정되어 있는 것은 이름으로 사용할 수 없다. 또한 true , false , null은 예약어는 아니지만 예약어처럼 사용하기 때문에 또한 이름으로 사용할 수 없다.

abstract, boolean, break, byte, case, catch, char, class, const, continue
default, do, double, else, extends, final, finally, float, for, goto
if, implements, import, instanceof, int, interface, long, native, new, package
private, protected, public, return, short, static, super, switch, synchronized, this
throw, throws, transient, try, void, volatile, while

③ 관례
이름을 마음대로 자바 식별자를 써서 변수들을 만들다 보면 결국 디버깅할(고칠)때 변수랑 메소드들이 헷갈려서 혼란을 겪게 될 수가 있다. 그래서 자바에서는 간단한 규칙을 만들었다. 반드시 따를 필요는 없지만 이런식으로 짜면 좋다라는 것을 정해 놓은 것이다.

  • 클래스명 : 첫자는 대문자로 시작하고 두개의 단어 이상이 결합할 때는 첫자는 대문자로 사용한다.
    Customer , AccountTest , AddressBook
  • 메소드명 : 첫자는 소문자로 시작하고 두개의 단어 이상이 결합할 때는 첫자는 대문자로 사용한다.
    메소드명 이름은 주로 동사를 사용한다.
    print , getName , setLocation
  • 변수명 : 첫자는 소문자로 시작하고 두개의 단어 이상이 결합할 때는 첫자는 대문자로 사용한다.
    변수의 이름은 주로 명사를 사용한다.
    accountName , balance , price

참고문헌
  • javanuri의 Java Beginner