안녕하세요! 오늘은 Java 구조와 문장에 대해 공부해 보겠습니다.
자바 클래스와 패키지
클래스
자바의 프로그램 단위는 클래스입니다. 클래스는 필드와 메소드로 구성되어 있는 집합을 의미하고 일반적으로 하나의 클래스는 하나의 소스로 구성됩니다. 클래스 이름은 대소문자를 구분하고 public class인 경우에는 파일 이름과 class 이름이 일치해야 합니다.
public class HelloJava {
...
}
위와 같은 코드를 짜게 된다면 파일 이름을 HelloJava.java로 해야 한다는 말입니다.
필드와 메소드
자바 클래스 내부는 필드와 메소드로 구성되어 있습니다. 필드는 소속변수나 전역변수라고도 하고 메소드는 C언어에서 함수와 같은 기능을 수행합니다. 특히 main() 메소드는 특별한 메소드로, 자바 프로그램이 실행되는 문장이 기술됩니다. 메소드 구현은 메소드 헤드와 메소드 블록으로 구성됩니다. 메소드 헤드는 수정자 반환형 메소드이름(인자목록)으로 구성되며 이후 중괄호의 블록 내부에서 메소드를 구현합니다. main() 메소드는 헤드가 반드시 public static void main(String[] args)으로 정의되어야 합니다. 여기서 public static가 수정자이고, void가 반환형, main()가 메소드 이름이고, 괄호 안의 String[] args를 메소드 인자라고 합니다.
public class HelloJava {
//필드 선언
static String fd = "->필드";
//main() 메소드
public static void main(String[] args) { //메소드 헤드
System.out.println(fd); //메소드 구현
}
}
필드를 구현하는 코드는 위와 같이 간단합니다.
메소드 구현과 호출
public class HelloJava {
//필드 선언
static String fd = "->필드";
static String md = "->메소드";
//main() 메소드
public static void main(String[] args) { //메소드 헤드
System.out.println(fd); //메소드 구현
write(md); //write() 메소드 호출
}
//write() 메소드
public static void write(String word){
System.out.println(word);
}
}
패키지
패키지는 서로 관련된 다양한 자바의 클래스의 묶음을 의미합니다. 패키지는 소스의 제일 앞에 위치해야 합니다. 패키지의 이름은 소문자로 작성되고 경로 및 단위는 '.'으로 구분됩니다. 예를 들어 hello라는 패키지 안에 world라는 패키지가 필요한 경우에 밑의 코드와 같이 사용합니다.
package hello.world;
public class HelloJava{
...
}
패키지의 사용은 일반적으로 import하여 사용할 수 있습니다.
import 패키지명; 이런 식으로 사용할 수 있고 import 역시 경로 및 단위는 '.'으로 구분됩니다. 또한 import 할 때 편리한 것은 import 패키지명.*; 처럼 '.*'을 이용하여 선언하면 코드에서 상위 경로 없이 하위 경로만 적어서 사용 가능하다는 것입니다.
hello.world 패키지 안에 있는 JavaWorld 클래스를 HelloJava.java에서 사용할 때 원래는 hello.world.JavaWorld 와 hello.world.JavaHi 로 import해야 하지만 위의 코드처럼 hello.world.* 로 import해서 밑의 코드에서 JavaWorld a = new JavaWorld(); 와 JavaHi b = new JavaHi();처럼 바로 사용할 수 있습니다.
자바 키워드와 식별자
키워드
프로그래밍 언어에서 문법적으로 의미 있는 단어로 사용하기 위해 미리 정의해 놓은 단어를 키워드 또는 예약어라고 합니다. 아래는 자바에서 사용하는 키워드입니다. goto와 const는 실제 사용하지는 않는다고 알고 있습니다.
식별자
식별자는 프로그래머가 정의하여 사용하는 단어입니다. 대표적인 식별자로는 클래스 이름, 변수 이름과 함수 이름이 있습니다. 식별자는 대소문자 알파벳의 영문자, 숫자, 밑줄, 달러 기호로 구성되고 다음과 같은 규칙이 있습니다.
1. 키워드는 식별자로 이용할 수 없다. 즉 키워드 byte, case등은 식별자가 될 수 없다.
2. 식별자의 첫 문자로 숫자가 나올 수 없다. 즉 77fortran, 2020year 등은 식별자가 될 수 없다.
3. 식별자는 대소문자를 구별하므로 변수 Count, count, COUNT는 모두 다른 변수로 취급되며 중간에 공백 문자가 들어갈 수 없다.
4. 자바는 유니코드를 지원하므로 식별자로 한글을 이용할 수 있으나 실무 프로그램에서 한글 사용은 권장하지 않는다.
예시로 static String fd = "->필드"; 의 코드에서'static'는 키워드이고 'fd'는 식별자(개발자가 정의한 변수 이름)이 됩니다.
문장과 주석
문장과 블록
프로그램에서 컴퓨터에게 명령을 내리는 최소 단위를 문장이라고 합니다. 자바 문장은 세미콜론(;)으로 종료됩니다. 블록은 중괄호를 사용하며 여러 문장으로 구성됩니다. 블록은 클래스 정의 또는 메소드 정의에 사용되며 사용자가 임의로 블럭을 구성할 수도 있습니다. 이건 따로 예시를 안 드려도 다들 이해하실 것 같네요.
인덴테이션
프로그램 소스 작성 시 클래스 정의에서 필드나 메소드의 첫 글자는 tab만큼 들여쓰는 방식을 인덴테이션이라고 합니다. 메소드 정의의 블록에서 첫 문장은 메소드 헤드 문장보다 탭만큼 더 들여 써야 합니다. 이클립스에서 Ctrl + Shift + F를 누르면 자동으로 코드의 모양이 바로잡힙니다.
주석
자바에서 주석은 //와 /*...*/로 나타냅니다. 보통 한 줄 주석을 할 때에는 //를 사용하고 여러 줄을 주석 처리해야 하는 경우에는 제일 앞부분에 /*로 시작하여 제일 마지막 부분에 */로 닫아줍니다. /*...*/를 사용할 때 주의할 점은 /*...*/ 안에 또 다른 주석을 넣을 수 없다는 것입니다. 예를 들어 보겠습니다. /*이 부분은 /*주석입니다.*/*/ 이런 식으로 사용할 경우 오류가 발생한다는 것입니다.
출처 : 강환수, 조진형「절대 JAVA 자바프로그래밍의 기초부터 안드로이드까지」, 인피니티북스
감사합니다.
'Language > Java' 카테고리의 다른 글
[JAVA]자바 자료의 입력과 출력 (0) | 2020.12.02 |
---|---|
[JAVA]자바 자료형과 변수 (0) | 2020.11.30 |
[JAVA]자바 문자열 출력하기 - println (0) | 2020.11.25 |
[JAVA]자바 시작하기(JDK, eclipse 설치) (0) | 2020.11.22 |