목차
1_JAVA 언어의 개요파악
2_JAVA 프로그랭밍 특징
3_JAVA 프로그래밍 작업 순서
4_코드 주석 사용방법
5_소스코드의 구조
5_1_패키지 선언
5_2_패키지 가져오기
5_3_클래스 블록
5_4_메인 메서드 블록
5_5_실행문=명령문
1_JAVA 언어의 개요 파악
고급 언어의 대표적인 프로그래밍 프로그램이 JAVA 이다.
작성된 소스 파일은 컴퓨터가 바로 이해할 수 없기 때문에
사람이 작성한 언어를 기계가 이해할 수 있는 언어로 변경하는 과정 기계어로 변경을 하면 생성 되는 파일이 존재한다.
즉, 개발자가 작성한 파일은 .java 파일이며, 컴파일러가 번역한 파일은 .class 파일이라고 한다.
번역하는 과정을 javac 라는 명령어를 통해서 처리가 가능하다.
이클립스에서 저장(ctrl + s)을 누르면 자동으로 명령어를 입력하지 않더라도 .class 파일로 변환해 준다.
이라는 컴퓨터가 이해할 수 있는 이진 코드(0과 1로) 가 기계어로 변환한 후 컴퓨터가 사용하게 된다.
2_JAVA 프로그래밍 특징
모든 운영체제에서 실행 가능
자바로 작성된 프로그램은 운영체제와 상관없이 모두 실행되기 때문에 윈도우에서 개발된 프로그램을 수정없이
바로 맥OS 또는 리눅스에서도 실행 할 수 있다는 장점이 있다.
객체 지향 프로그래밍 = 크로스 플랫폼
먼저 객체(부품)를 만들고, 이 객체들을 서로 연결해서 더 큰 프로그램을 완성시키는 기법을 객체 지향 프로그램(OOP)라고 한다. 자바는 OOP를 위한 최적의 언어이다.
OOP (Object Orientded Programming)
장점 :
1. 기존에 작성했던 코드를 재사용해서 더 편리하게 빠르게 코딩을 할 수 있다.
2. 절차 지향 프로그래밍과 달리 객체로 코드가 나누어져 있기 때문에 유지 보수가 편하다.
단점 :
1. 절차 지향 프로그램밍에 비해 속도가 느리다.
2. 코딩 계획, 객체 등에 대해 완벽한 이해를 필요로 하기 때문에 코딩이 어렵고 시간이 오래 걸린다.
메모리 자동 정리
자바는 JVM(내장형 시스템 자바 가상 머신)을 통해 불필요한 메모리(RAM)를 자동 관리해주기 떄문에 메모리 관리에 효율적이다.
무료 라이브러리 풍부
무료로 다운로드해서 사용할 수 있는 오픈 소스 라이브러리(Open Source Libray)가 풍부하기 떄문에 프로그램 개발 기간을 단축시켜준다.
3_JAVA 프로그래밍 작업 순서
코딩(Coding) 작업 : *.java
- 컴퓨터 언어로 소스파일(Source File)을 만드는 작업
컴파일(Compile) 작업 : 확장자 : *.class
- 소스파일을 바이트 코드로 변환하는 작업
- 어떠한 운영체제에서 컴파일을 하더라도 동일한 바이트 코드가 생성됨
디버깅(Debugging) 작업
- 문법적 오류를 수정하는 작업
- 소스파일을 수정하였으면 컴파일 작업을 다시 해야 함
실행 작업
- 문법적 오류가 없는 바이트코드 파일을 싱행
4_코드 주석 사용방법
주석은 프로그램 실행 코드에 설명을 붙이는 것으로 복잡한 코드일수록 주석을 다면 전체 코드를 이해하기 쉽다.
주석은 컴파일 과정에서 무시되기 때문에 주석을 많이 작성한다고해서 바이트 코드 즉 파일의 크기가 커지지 않는다.
// <-- 행 주석 사용 방법
/* <-- 범위 주석 사용 방법 --> * */
/**<-- 도큐먼트 주석 사용 방법 --> */
구분 | 주석 기호 | 설명 |
행 주석 | // ··· | // 부터 행 끝까지 주석으로 처리한다. |
범위 주석 | /* ··· */ | /*와 */ 사이에 있는 내용은 모두 주석으로 처리한다. |
도큐먼트 주석 | /** ··· */ | /**와 */ 사이에 있는 내용은 모두 주석으로 처리한다. javadoc 명령어로 API 도큐먼트를 생성하는 데 사용한다. |
5_소스코드의 구조
/* 패키지 선언 * */
package homework;
/* 클래스 선언 블록 * */
public class Ch_00 { // start of class : 클래스 블록 ch_00.java 소스파일명 생성
/* 메인 메서드 블록 : 프로그램 실행 진입점 * */
/* 메인 메서드 구성 : [*public] [*static] [*void] [*main(String[] args)] **/
public static void main(String[] args) { // start of main
/* 실행문=명령문(statement) */
// 문장의 끝은 항상 세미콜론(;)을 붙여서 하나의 문장임을 표시한다.
int x; // 변수 x 선언
x = 1; // 변수 x에 1 값을 저장
int y = 2; // 변수 y를 선언하고 2 값을 저장
int result = x + y; // 변수 result 를 선언하고 변수 x와 y를 더한 값을 저장
/* 콘솔에 출력하는 메서드(실행문) 호출 * */
// 콘솔에 변수의 값을 출력하는 println() 메서드로 선언한 값의 변수 result 를 호출
System.out.println("x + y = : " + result + "입니다."); // 출력 : x + y = : 3입니다.
} // end of main : 메인 메서드 블록 끝
} // end of class : 클래스 선언 블록 끝
5_1_패키지 선언
패키지 키워드(package keyword) 란
- 자바 클래스 파일들을 모아 기능별로 분류하기 위한 일종의 디렉토리(파일 시스템 폴더)
- 클래스를 컴파일하면 첫 줄에 자동 생성되며, 클래스를 식별하는 관리자 역할을 한다.
이외에도 클래스명이 충돌하지 않도록 카테고리화 한 것으로 보면된다.
- 패지키 이름으로는 숫자와 특수문자( _ 와 $ 제외 ) 사용이 불가능하며, 모두 소문자로 작성해야 한다.
- 실무에서는 다양한 회사와 협업할 경우에 중복 방지를 위해서 도메인(상위패키지 밑으로 하위패키지 생성)을
이용해 구분 짓는다.
5_2_패키지 가져오기
- 다른 패키지의 자바 표준 API나 클래스 파일을 가져 올 때 사용한다.(소스 코드 간략화가 목적)
- 코드에서 사용할 클래스의 패키지에 대한 정보를 미리 제공하는 역할을 한다.
- 패키지 이름에는 패키지의 경로까지 포함한 풀 네임을 명시한다.
- import 문을 선언할 때 별표(*)를 사용하면 해당 패키지에 포함된 모든 클래스를 사용 가능하다.
import 사용 주의할 점
import 문을 선언할 때 별표(*)를 사용하면 해당 패키지에 포함된 모든 클래스를 가져오지만,
모든 하위 패키지의 클래스까지 포함시켜주지 않는다.
따라서 하위 클래스까지 가지고 오고 싶다면 직접 하위 도메인 경로를 지정해 표현하여야 한다.
5_3_클래스 블록
클래스(Class) 란
JAVA에서 객체를 생성하기 위한 설계도(template)이라고 생각하면 편하다.(ex: 붕어빵을 만들 때 붕어빵틀을 생각해보자)
클래스명은 반드시 소스 파일명과 일치해야 한다. (ex: 파일명 : Ch01.java 일 때 public class Ch01 {} 로 일치해야 한다.)
public 접근 지정자가 지정된 클래스는 반드시 클래스 파일 내, 하나의 클래스만 존재할 수 있다.
public은 다른 패키지에서도 사용할 수 있다는 뜻이다.
package homework;
public class Ch_01 { // start of class : 클래스 블록 Ch_01.java 소스파일명 생성
public int fieldName; // 필드
public Ch_01() {
} // 생성자
public void methodName() {
} // 메서드
class Member {
} // 내부 클래스
} // end of class : 클래스 선언 블록 끝
클래스 구성
- 필드(field) : 객체의 데이터를 저장
- 생성자(constructor) : 생성된 객체를 초기화
- 메서드(method) : 객체의 동작을 실행
- 내부 클래스(lnner class) : 클래스나 인터페이스의 내부에 선언
5_4_메인 메서드 블록
메인 메서드(main method)란
프로그램을 구동하는 메인 스레드이다.
자바 프로그램을 실행하면 자바 가상 머신은 클래스 내에 포함되어 있는 public static void main(String[] args) 라는
시그니처를 갖는 메인 함수를 실행한다.
/* 메인 메서드 블록 : 프로그램 실행 진입점 * */
/* 메인 메서드 구성 : [*public] [*static] [*void] [*main(String[] args)] **/
public static void main(String[] args) { // start of main
} // end of main : 메인 메서드 블록 끝
메인 메서드 구성
- public : 모든 클래스에서도 해당 변수나 메서드가 접근이 가능하다는 의미로 프로그램의 시작은 main이기 때문에
다른 곳에서도 호출할 수 있도록 public을 사용
- static : 자바가 compile이 되는 순간 가장 빠르게 정의되어 별도의 객체 생성 없이 모든 객체와 공유가 가능
- void : 별도로 return 값 없이 메서드를 실행하고 끝난다는 의미
- main : 이 메서드가 main 메서드라는 의미
- string[ ] args : 연속적인 문자열 데이터가 들어가는 저장 공간. 터미널에서 자바 프로그램을 실행할 때
인수를 줄 수 있는데 이 값이 이곳으로 들어오게 된다.
메인 메서드가 없을 경우
컴파일 할 때 프로그램은 알아서 main 메서드를 찾아 진입점으로 인식하기 때문에 main 메서드가 없으면
에러가 생기게 된다. 따라서 진입점(메인) 없는 라이브러리 형태의 프로그램을 작성하고자 할 때는 컴파일 할 때
옵션에 /reference를 사용하여 라이브러리 형태라는 것을 명시해 주어야 에러가 발생하지 않는다.
만일 main 메서드가 여러 개 있을 경우 어떤 메서드를 진입점으로 사용할 것인지 컴파일러에 지시를 내려주지 않으면 에러가 발생한다.
5_5_실행문=명령문
자바(JAVA) 소스 코드 파일에는 클래스 한개가 들어있고 그 클래스 안에는 클래스가 필요로 하는 행동을 나타내는 메서드가 한 개 이상 있고,
메서드 안에는 해당 메서드가 어떻게 처리되어야 하는지에 대한 내용(Statement)이 들어가 있다. 문장(statement)은 컴퓨터에게 작업을 지시하는 최소 구성단위이다. 문장의 끝은 항상 세미콜론(;)을 붙여서 하나의 문장임을 표시한다.
/* start of class * */
public class Ch_02 {
/* start of main **/
public static void main(String[] args) { // start of main
/* 실행문=명령문(statement) * */
/* start of statement * */
int x; // 문장의 끝은 항상 세미콜론(;)
x = 1; // 문장의 끝은 항상 세미콜론(;)
int y = 2; // 문장의 끝은 항상 세미콜론(;)
int result = x + y; // 문장의 끝은 항상 세미콜론(;)
/* 콘솔에 출력하는 println() 메서드 실행문=명령문 호출 * */
System.out.println("x + y = : " + result + "입니다."); // 출력 : x + y = : 3입니다.
} // end of main
} // end of class
참고 문헌
☕ JAVA 소스 코드 구조 - 한눈에 이해하기
자바 소스코드의 구조 본격적으로 자바(Java) 문법에 대해 배우기 전에, 전반적인 자바 소스 코드가 어떤식으로 구성이 되어있는지에 대해서 알아보자. 보통 일반적인 자바 소스코드는 다음과 같
inpa.tistory.com
'Java' 카테고리의 다른 글
[Java] chapter_01 ~ 03 (0) | 2023.09.18 |
---|---|
[JAVA] 자료형과 변수의 기본 문법언어 특성 및 소스 코드 구성 (0) | 2023.08.20 |
[java] Object 클래스 - 모든 클래스의 최상위 클래스 (0) | 2023.08.11 |
[java] 인터페이스 (0) | 2023.08.10 |
[java] String class (0) | 2023.08.10 |