C언어와 파이썬, 자바스크립트는 경험이 있는데 유독 JAVA만 경험이 없다.
그래서 정처기 문제 중 자바 관련 문제가 나오면 심히 메롱스럽다.
메롱스러우면 어쩔텐가
열심히 해야지!!
먼저 모든 프로그래밍의 기초인
데이터 입출력부터 찬찬히 공부해보자.
늦었다고 할 때는 이미 늦었다.
그니까 더욱 열심히 해야한단다.
해보자!
일단 당장 자바를 깔기엔
노동력 소모가 심하다.
다행히 웹에서 자바를 구동할 수 있는 사이트가 있다.
https://www.jdoodle.com/online-java-compiler/
이 사이트를 최대한 활용해서 자바를 손쉽고 빠르게 배워보도록 하자.
다음은 자바 입출력 문제이다.
아래 코드에서 우리는 정수를 입력해서 변수로 받은 뒤, 연산해서 나온 값을 출력하는 코드를 만들어볼 것이다.
<코드의 내용은 시나공의 교재를 따왔다.>
import java.util.Scanner;
public class Test {
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
System.out.printf("a * 3 = %d\n", a * 3);
System.out.println("a / 2 = " + (a / 2));
System.out.print("a = 1 = " + (a - 1));
scan.close();
}
}
간단한 입출력 코드에도 이렇게나 입력해야할 것들이 많다.
그도 그럴게 자바는 객체지향 언어로써
아주아주 간단한 것을 코딩하더라도 반드시 클래스를 선언해서 작성해야 한다.
코드를 분석해보자.
import java.util.Scanner; // Scanner는 입력과 관련된 함수가 정의되어 있다. import로 불러왔다.
public class Test {
// 자바는 아무리 작은 프로그램이어도 클래스 안에 속성(변수)와 메소드(함수)를 만들어 실행한다.
// public class는 실행을 위한 클래스에 꼭 써야하는 예약어이고, Test는 클래스 이름이다.
// 클래스 이름의 첫 글자를 대문자로 하는 것은 관례이다. 즉 Duckchun 이런 식으로 이름을 짤 수 있다.
public static void main(String[] args) {
// 모든 C가 main()에서 시작하듯, 자바 역시 클래스 안에 main()이 있어야 실행된다.
// 이를 프로그램 실행 진입점이라고 한다.
// public static : public은 제한자이고 static은 정적이라는 의미인데 일단 main() 앞에 와야 한다.
// void : 반환값이 없다는 뜻이다. main()은 그냥 실행 진입점으로 반환값을 가지면 안된다.
// String[] args : 문자열을 string 클래스로 받겠다는 의미인데 일단 그냥 필요하다고 이해한다.
Scanner scan = new Scanner(System.in);
// Scanner : 입력에 사용할 객체 변수를 생성한다. 위에 Scanner를 불러와서 가능하다.
// scan : Scanner 클래스의 객체 변수 명이다. 임의로 적는다.
// new : 객체 생성 예약어이다. 약속이 된 것이므로 그냥 적는다.
// Scanner() : 클래스의 이름이다.
// System.in : 표준입력장치를 의미한다.
// 이를 합치면 Scanner 클래스의 scan 객체 변수를 new Scanner()를 통해 만들어주고,
// 그 내용물은 System.in(표준입력장치)로 한다.
int a = scan.nextInt();
// scan에서 넘어온 값을 int(정수)로 바꿔준다.
System.out.printf("a * 3 = %d\n", a * 3);
// 출력을 의미하는 System.out이다. 여기에 printf 메소드를 이용해 출력한다는 의미다.
// 기본 문법은 C언어의 printf()와 같다.
System.out.println("a / 2 = " + (a / 2));
// 개행을 해주는 출력문이다. 알아서 줄바꿈이 된다.
System.out.print("a = 1 = " + (a - 1));
// 줄바꿈이 안되는 print문이다.
scan.close();
// 모든 작업이 완료되었으니 객체 변수 scan에 자동으로 할당된
// 메모리를 닫아 작업을 끝내준다.
}
}
만약 public static void main(String[] args) 에서
public이 아니고 protect나 private라면
main()은 어디서도 클래스를 끌어오지 못하는 녀석이 되어 깡통이 될 것이고,
static이 없으면 메모리할당이 이상하게 되어버릴 것이며
void를 다른 것으로 바꾼다면 main함수가 리턴값을 가지게되어
예기치않은 값이 나올 것이다.
그래서 public static void main(String[] args)는 고정으로 둬야한다.
'했던것들 > 정보처리기사' 카테고리의 다른 글
정보처리기사/JAVA/클래스(생성자) (0) | 2022.07.19 |
---|---|
정보처리기사/JAVA/제어문 (0) | 2022.07.19 |
[요점정리] 2022년 정보처리기사 필기 4과목. 프로그래밍 언어 활용 (0) | 2022.04.21 |
[요점정리] 2022년 정보처리기사 필기 3과목. 데이터베이스 구축 (0) | 2022.04.21 |
[요점정리] 2022년 정보처리기사 필기 2과목. 소프트웨어 개발 (0) | 2022.04.21 |