나의 IT일지
Java 프로그래밍의 이해 본문
프로그래밍이란 프로그램을 만드는 행위로, 컴퓨터에게 명령할 명령어를 프로그래밍언어를 이용해서 코드 작성한다. 그리고 해당 코드(자연어)는 컴파일러를 통해 기계가 읽을 수 있는 언어인 기계어로 번역한 뒤 실행한다. 이때, 프로그래밍 언어마다 코드를 작성하는 방법이 다 다른데 Java는 어떤 형식으로 코드를 작성하는지 알아보자.
프로젝트 만들기
Java를 사용해서 코드를 작성할려면 프로젝트가 필요한데, 프로젝트를 만들 때 workspace를 만들어야 한다. workspace란 프로젝트를 저장하는 폴더로, workspace로 지정되는 폴더는 Eclipse의 개발환경의 설정을 저장해 놓은 ".metadata"가 생성된다.
이렇게 지정하면 다음과 같은 개발환경이 나타난다.
메뉴중 Window메뉴는 개발에 필요한 창을 띄워주거나 해당 workspace의 설정을 변경하는 메뉴이다.
File → Java project 메뉴를 선택하면 프로젝트를 생성할 수 있는 창이 나타난다. (단축키 alt+shift+n)
이때, Module에서 모듈파일 생성항목을 해제해서 사용할 것이다. 모듈이란 패키지를 다른 패키지에서 사용하고 싶을때 사용하는 기능으로, 소스파일 폴더에 "module-info.java"파일을 생성한다.
프로젝트를 생성하면 JRE 라이브러리와 소스파일폴더가 생성된 것을 확인 할 수 있으며, 소스파일에 프로젝트를 생성하는 것처럼 패키지를 생성하고 그 패키지에 하면 클래스를 생성하면 다음과 같이 나타난다. 이때, 클래스의 이름의 첫번째는 영어 대문자로 시작해야 한다.
정리하자면 프로젝트안에 패키지를 만들고, 패키지 안에 파일을 만들어 작성하는 것으로 Java의 프로그래밍이 진행된다.
Java의 기본구조
먼저 파일을 만들면, 다음과 같은 코드가 생성된다.
package pack1; //패키지 선언부
public class C1 { //클래스 선언부
public static void main(String[] args) { //메소드 선언부
//TODO Auto-generated method stub
}
}
위의 코드를 해석하면 다음과 같다.
- package : 패키지 선언으로, 현 파일(클래스)이 패키지에 있다고 선언. 이때, 패키지란 소스파일 및 컴파일된 클래스 파일을 한 곳에 모아두는 폴더
- public class : 클래스 선언으로, 클래스가 어떤 필드와 메소드를 가지고 있다고 선언, 이때, 클래스란 메소드와 필드를 포함하는 블록
- public static void : 메소드 선언으로, 해당 메소드에 어떤 함수, 명령어를 가지고 있다고 선언. 이때, 메소드란 어떤 일을 처리하는 명령어들을 모아 놓는 블록으로, 함수를 의미
- // : 주석으로, 프로그램에 영향을 주지 않기 위한 문장, 코드에 대한 설명이 필요할 때 사용
- main() : 프로그램의 시작점으로, 실행이 시작되면 공개 클래스(pubilc class)에서 main() 메소드를 찾아 블록 내부를 실행
즉, 해당 파일은 "pack1"이라는 패키지에 소속되어 있으며, 공개 클래스에 있는 main 메소드를 기준으로 블록 내부를 실행하도록 코딩되어 있다.
출력 메소드
출력 메소드란 개발자가 컴퓨터에게 모니터에 출력해달라고 내릴 수 있는 명령이다.
package pack1;
public class C1 {
public static void main(String[] args) {
System.out.print("hello world");
System.out.print(100);
System.out.print(3.14);
System.out.print('a');
System.out.println("hello world");
System.out.println(100);
System.out.println(3.14);
System.out.println('a');
System.out.printf("%s","hello world");
System.out.printf("%c",'a');
System.out.printf("%d",100);
System.out.printf("%f",3.14);
}
}
위의 코드는 출력 메소드를 이용한 코드로, 출력 메소드는 3가지의 형태가 있다.
- System.out.print(출력값)
- System.out.println(출력값)
- System.out.printf("형식지정자", 출력값)
우선 첫번째 출력 메소드인 "System.out.print" 는 줄바꿈 없이 출력값을 출력 명령으로, 형식 지정 없이 출력이 가능하다. 즉, System.out.print("hello world")는 문자열 형식, System.out.print('a')는 문자 형식, System.out.print(100)는 정수 형식, System.out.print(3.14)는 실수 형식으로 출력이 된다.
두번째 출력 메소드인 "System.out.println"은 출력값을 출력 후 줄바꾸는 명령으로, "System.out.print"와 마찬가지로 형식을 지정하지 않아도 출력이 가능하다.
마지막 출력 메소드인 "System.out.printf"는 출력값을 지정된 형식으로 출력하는 명령으로, 형식 지정자를 사용하여, 출력값을 지정하여 출력이 가능하다. 그래서 아스키코드를 이용해서 문자에 맞는 숫자나 숫자에 맞는 문자를 출력할 수 있는데, 아스키 코드란 컴퓨터가 숫자를 통해 문자를 저장한 코드로, 문자 A는 65라는 숫자를 문자 a는 97이라는 숫자와 대칭된다.
입력 메소드
입력 메소드란 컴퓨터에게 키보드로 데이터를 입력받아 달라고 내리는 명령이다.
package pack1;
import java.util.Scanner;
public class C2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in) ;
System.out.println(sc.next());
}
}
위의 코드는 입력 메소드를 사용하는 코드로, 입력 메소드를 사용하기 위해서 다음과 같은 준비가 필요하다.
- import java.util.Scanner; : java.util 패키지에 있는 Scanner 클래스를 가져오기
- Scanner sc = new Scanner(System.in); : Scanner클래스 타입형 변수 sc를 만들고, 입력 값을 받을 수 있는 Scanner객체를 생성하고 해당 변수에 객체의 주소를 저장
위의 준비를 입력하면, 입력 메소드를 사용할 수 있게 된다. 입력 메소드는 4가지 형태가 있다.
- sc.next();
- sc.nextlnt();
- sc.nextFloat();
- sc,nextLine():
"sc.next();"는 문자열을 변수에 저장한다는 입력 메소드으로, 문자열을 입력할 때, 띄어쓰기가 있게되면 띄여쓰기 전까지의 입력값을 저장한다.
"sc.nextlnt();"는 정수를 변수에 저장한다는 입력메소드이며, "sc.nextFloat();"는 실수를 변수에 저장한다는 입력메소드이다. 이때, 문자를 입력하게 되면, 오류가 발생하게 된다.
"sc,nextLine():"는 문자열을 변수에 저장한다는 입력 메소드으로, 문자열을 입력할 때, 띄어쓰기가 있으면 띄여쓰기이후의 데이터까지 입력값을 저장한다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
연산자 (논리, 비트) (1) | 2023.03.17 |
---|---|
연산자(산술, 단항, 비교) (0) | 2023.03.16 |
변수와 상수 (0) | 2023.03.15 |
JDK와 Eclipse 설치 (0) | 2023.03.11 |
프로그래밍과 Java (0) | 2023.03.10 |