Chapter 3. 자바 프로그래밍 기초

본 내용은 KH정보교육원 에서 제공한 교재 내용을 개인적인 공부를 위한 목적으로 작성되었습니다.
만약 아래의 내용을 무료로 배부하거나 상업적으로 이용할 경우 법적 처벌을 받을 수 있음을 경고합니다.

Java 소스코드 기본 구조


  • 자바 소스코드는 아래와 같은 구조로 되어 있다.
package 패키지명;

[import 다른 패키지에 있는 클래스명;] //  외부 클래스 사용 선언

class 클래스명 {
    자료형 변수명; // 멤버변수
    public static void main(String[] args) { // main메소드
    
    		시작될 기능 구현 코드
    
    }
    
    public 반환형 메소드(매개변수, 매개변수, ...) {
    
    		메소드 기능 구현 코드
    
    }
    
}
  • [] 표시는 생략이 가능

자바로 프로그래밍을 할 때에는 위에 예제와 같은 구조로 작성을 해야 한다. 먼저 클래스들을 묶어주는 패키지를 설정하고, 작성하고 있는 클래스(객체)에서 다른 패키지에 속해 있는 클래스를 사용할 경우 import로 설정해주면 된다. 두 가지를 설정하고 객체 지향 언어에서 제일 중요한 class를 설정하게 된다.
class 내부에는 멤버변수와 메소드가 들어가게 되는데 이는 객체부분에서 설명하니 자세한 내용은 생략한다.

Java 프로그램의 실행 순서


프로그램의 실행 순서는 코드의 윗쪽에서 부터 아래로 차례대로 실행이 되고, 특정한 메소드를 사용하지 않으면 다시 위로 왼쪽으로 올라가는 경우는 없다. 소스코드의 순서에 따라 영향을 받으니 초보들은 작성 순서를 주의해서 작성해야 한다.

RunOrder.java

01 public class RunOrder {
02    public static void main(String[] args) {
03       System.out.println("Hello");
04       System.out.println("java");
05    System.out.println("Welcome to Java World");
06    }
07 }
------
Hello
Java
Wecome to Java World

위의 예제는 Hello, Java, Welcome to Java World를 출력하는 코드이다. 03번 소스부터 위쪽에서부터 순서대로 출력이 되는 걸 볼 수가 있다. 이렇게 프로그램이 실행이 되면 소스코드를 위에서부터 아래로 읽게 된다. 다시 04번을 출력하고 03번을 출력하고 05번을 출력할 수는 없다.
실행 순서는 명심해야 한다. 순서(위치)를 잘못 지정하여 에러를 발생하는 경우가 많기 때문이다.
이번 예제는 순서를 잘못 지정하여 에러를 발생하는 코드이다.

RunOrderErr.java

01 public class RunOrderErr {
02    public static void main(String[] args) {
03        System.out.println(name);
04            String name = "유병승";
05    }
06 }
07
------
에러 발생!

이번 예제를 실행하면 name이라는 것이 없다고 에러를 발생시킬 것이다. 아직 변수가 기본 문법을 배우지 않았지만 순서를 설명하기 위해 작성하였다. 위에 04번 줄에서 name에 값을 넣고 03번 줄에서 출력하고 있다. 프로그램은 위에서 아래로 차례로 진행된다고 하였다. 그렇기 때문에 03번에서 출력하려고 할 때 그 위 소스에서 name이라는 것이 없기 때문에 name이라는 것이 없다고 에러를 발생하는 것이다. 이것을 정상적으로 출력하려면 03번 줄과 04번 줄의 위치를 바꾸면 정상적으로 실행이 된다. 처음에는 이런 실수를 많이 하니 반드시 순서를 잘 기억해야 한다.

Java 프로그램 실행범위


실행범위는 코드상에서 '{ }' 로 표시하고 ' { ' 는 코드의 시작을 의미하고 ' } ' 는 코드의 끝을 의미한다. 실행범위는 메소드, 클래스, 조건문, 반복문 등의 실행범위를 정할 때 사용한다. 앞에 나온 용어는 앞으로 배울 것이니 이런 것이 있구나 하고 넘어가도록 한다. 실행범위 내에 있는 소스들 즉, " { "과 " } " 사이에 있는 소스코드만 사용이 가능하고 다른 실행범위에 있는 소스코드는 일반적으로 사용할 수 없다.
실행 범위 설정에서도 많이 실수를 하니 잘 기억해야 한다.

RunScope.java

01 public class RunScope {
02     public static void main(String[] args) {
03         String name = "홍길동";
04         System.out.println(name);
05         print();
06     }
07     public static void print() { // print 메소드
08         System.out.println(name);
09     }
10 }
------
에러발생

위 예제가 발생하는 이유는 name은 main() 메소드(02번 줄) 실행범위 안에 있기 때문에 print()에서는 사용할 수가 없기 때문에 에러가 발생한다. 예제를 아래와 같이 수정하면 에러발생 없이 실행이 되고 똑같은 name 이라는 것을 출력하지만 각각 다른 내용을 출력하게 되는데 각자 실행범위에 있는 것을 불러오기 때문이다.

RunScope1.java

01 public class RunScope1 {
02     public static void main(String[] args) { // 메인 메소드
03         String name = "유병승";
04         System.out.println(name);
05         print();
06     }
07     public static void print() { // print 메소드
08         String name = "김자바";
09         System.out.println(name);
10     }
11 }
------
유병승
김자바

주석 (Comment)

소스 코드의 내용 이해를 돕기 위한 설명 문구를 주석이라고 한다.
한 줄 주석 : // 소스 코드 내용 이해를 돕기 위한 설명 문구를 한 줄로 기록
여러 줄 주석 : /* 소스 코드 내용 이해를 돕기 위한 설명 문구를 여러 줄로 기록
Java document 용 주석 : /** 작성된 클래스에 대한 API 도큐먼트 문서에 기록될 내용 입력

Comment.java

01 public class Comment {
02     public static void main(String[] args) {
03         // 한 줄 주석
04         System.out.println("Hello");
05         // System.out.println("Java"); // 이 주석 기호의 오른쪽은 코드로 인식 되지 않습니다.
06
07         /*
08         여러 줄 주석
09         이 안의 내용은 코드로 인식되지 않습니다.
10         컴파일 시 소스 코드에서 제외되고 컴파일 됩니다.
11         System.out.println("Hello Java");
12         */
13     }
14 }
-------
Hello

Java document 만들기

TestDoc.java

01 /**
02     자바 클래스에 대한 API 도큐먼트 작성 테스트용 클래스이다.
03 */
04 public class TestDoc {
05 /**
06     이름 저장용 멤버변수
07 */
08     private String name;
09
10 /**
11     나이 저장용 멤버변수
12 */
13     private int age;
14 
15 /**
16     객체 생성시 멤버변수 초기화용 매개변수 있는 생성자
17 */
18     public TestDoc(String name, int age) {
19         this.name = name;
20         this.age = age;
21     }
22
23 /**
24     멤버변수가 가진 값을 콘솔 화면에 출력시키는 메소드
25 */
26     public void print() {
27         System.out.println(name + ", " + age);
28      }
29 }

이클립스 상단 메뉴바에서
Project > Generate Javadoc... 선택 >
Javadoc Generation 창에서 'Javadoc Comment' 에 설치된 jdk 폴더 아래 bin 폴더 아래의 Javadoc 실행 파일을 선택한다. >
도큐먼트 문서를 만들 클래스를 체크하고, 생성될 위치 확인하고 >
Finish 버튼을 누른다. >
생성된 doc 폴더 안의 index.html 을 실행시켜 확인해 본다.

좋은 웹페이지 즐겨찾기