오늘은 프로그래밍의 첫출발인 Hello world를 출력하는 방법과 변수에 관한 내용들을 배웠습니다!
변수는 하나의 값을 저장할 수 있는 저장공간 입니다. (새로운 값을 다시 저장하게 되면 기존의 값은 사라진다고 해요!)
변수를 선언하게 되면 변수에 이름을 짓고 컴퓨터 상에 변수를 위한 메모리를 만들게 된다고 합니다.
이렇게 작성하게 되면 변수를 선언하게 된답니다!
그리고 변수를 사용하기 위해서는 항상 변수를 초기화해 줘야한다고 해요 변수를 초기화하려면
처럼 초기화를 해줘야 된다고 합니다!
여기에서 위에 num은 밑줄이 없는데 왜 지금 보이는 num은 밑줄이 있을까요? 저도 궁금해서 한번 찾아보았는데
이미지에 보이는것 처럼 이클립스라는 프로그램은 오류나 문제? 가 생기게 되면 저렇게 번호 옆에 전구가 뜨게 되고 거기에 마우스를 올리게 되면 영어로 왜 이런 밑줄이 생겼는지 가르쳐줘요!
num이라는 변수를 사용하지 않아서 오류가 났다고 하는데 처음에는 이게 무슨소리지? 변수가 사용이 되지 않았다고? 위에서 int num = 0;으로 선언해주고 초기화해줬는데 뭐지 하고 되게 당황을 했는데 확인해 보니 초기화나 선언은 변수를 사용하기 위해서 해주는 것일 뿐 사용한 것은 아니라고 하네요! 그렇다면 이 변수를 어떻게 하면 사용을 하는 것이고 밑줄이 지워지는지 알아보기에 앞서 먼저 변수의 타입과 상수와 리터럴에 대해 먼저 말씀드리겠습니다!
변수의 타입에는 기본형과 참조형이 있는데 기본형은 저장공간에 값을 저장하지만 참조형은 따로 저장공간이 없어서 주소를 저장 한다고 합니다. 그래서 메모리 공간에 할당? 해줄 때는 참조형 같은 경우에는 값이 아니라 주소를 넣는다고 합니다! 그리고 참조형 변수 간에는 연산을 할 수 없어서 실제 연산에 사용되는 것은 모두 기본형 변수라고 합니다 ~
기본형은 모두
문자형 (char)
정수형 (byte, short, int, long)
실수형 (float, double)
논리형 (boolean)
8개 이며, 그 외에는 모두 참조형이라고 합니다!
상수와 리터럴에 대해서 이야기 해보면 상수란 변수처럼 값을 저장할 수 있는 공간이지만 변수와 달리 한번 값을 저장하면 다른 값으로 변경할 수 없다고 합니다. 여기서 리터럴은 상수의 또 다른 종류이며, 고윳값을 의미하고 그 외에 심볼릭 상수, 매크로 상수, 열거형 상수 등이 있다고 합니다.
처음에 변수랑 상수를 헷갈렸는데 상수는 선언할 때 꼭 final을 붙여줘야 하기 때문에 final의 유무로 알게 되었습니다! (꿀팁 입니다요!)
이제 조금전에 생겼던 전구 표시와 변수의 밑줄을 없애는 방법 중 하나인 화면에 글자를 출력하는 방법을 알아보도록 하겠습니다!
이클립스에서는 화면에 글자를 출력하기 위해서는 print(), println(), printf()을 사용하는 데 사용방법을 말씀드리기 먼저 print와 println의 차이는 바로 줄 바꿈(개행)의 유무입니다! 자바에서는 개행문자로 '\n'을 사용한다고 하던데 ln이 이와 가장 유사하기 때문에 친숙함의 의미로 println이라고 만든 게 아닐까 제 개인적인 생각입니다 하핳
아무튼! print()는 단순히 print()라고 작성한다고 출력이 되는것이 아니라 System.out.print();라고 작성을 하며 () 가로 안에 자신이 표현을 하고 싶은 것을 작성해야 비로소 그것이 출력이 되어서 콘솔? 창에 나타나게 돼요!
이 사진을 보면 파란색 동그라미가 콘솔 창이에요 ~
그리고 위에서 변수를 설명하면서 나왔던 밑줄과 전구 표시가 사라지게 되었습니다! 이런 걸 변수를 사용한다고 하는 거 같아요 ~
그리고 print(), printf(), println() 메서드라고 합니다!
메서드가 무엇인지 알고 넘어가면 좋을 거 같아서 메서드에 대해서 말씀드릴게요 ~
메서드는 C언어나 파이썬에서 사용하는 함수라는 말과 같다고 하며, 자바에서는 함수를 메소드라고 불린다고 해요!
메서드는 쉽게 말해서 클래스에서 사용하는 기능을 의미해요!
(뜬금없는 ~ ) Qize 타임!
자바에서 줄을 바꿔서 출력하고 싶을 때 사용하는 것은?
정답: println()
Chap 2_12에는 printf()를 이용한 출력에 대해 나와있는데 printf란 쉽게 이야기해 양식(형식)을 말하는 거라고 했습니다. 그래서 printf에 f는 formatted(형식화된)을 뜻한다고 합니다.
그리고 printf에는 지시자라는 게 있는데 지시자는 변수의 값을 여러 가지 형식으로 변환해주는 기능을 가지고 있다. 쉽게 말해 값을 어떻게 출력할 것인지를 지시해주는 역할이라고 생각하면 됩니다.
지시자 중에 자주 사용되는 것은
%d : 10진 정수의 형식으로 출력
%x : 16진 정수의 형식으로 출력
%f : 부동 소수점의 형식으로 출력
%c : 문자로 출력
%s : 문자열로 출력
이 있다고 한다 그 외에도
%b : boolean으로 출력
%f : 지수 형식으로 출력
등이 있습니다!
마지막으로 사용자에게 입력을 받는 Scanner클래스와 오버플로우에 대해서 배웠는데 Scanner 클래스를 사용하면 사용자에게 값을 입력받을 수 있는데 이게 또 되게 재밌더라고요! 일단 Scanner을 사용하기에 앞서 import java.util.Scanner; 라는 명령어를 작성해야 하는데 그 이유가 Scanner는 java.util이라는 패키지에 포함되어 있는 클래스이기 때문에 그렇다고 합니다 ~
Scanner클래스에는 nextInt(), nextFloat() 등 그 외에 다양한 메서드들이 있다고 합니다.
각 메서드들은 변환 없이 숫자로 입력을 받거나 문자열을 숫자로 바꿔주는 등 변환을 해주는 역할을 합니다. 자바는 입력한 대로 컴퓨터가 이해하는 게 아니라 따로 컴퓨터가 이해할 수 있게 변환을 해줘야 하기 때문에 이런 메서드나 타입 등이 있는 거 같습니다 그리고 Scanner 클래스를 사용하려면 import문을 추가해주어야 하는데 import문이란 사용하려는 클래스가 어디에 속해있는지 혹은 어떤 패키지에 속해있는지 알려주기 위해서 사용한다고 합니다 이제 정말 마지막으로 오버플로우에 관해서 이야기를 해보고 끝을 내보려고 합니다 ~
오버플로우란 연산과정에서 해당 타입이 표현할 수 있는 값의 범위를 넘어서는 것을 오버플로우라고 하고 이것을 적용시켜 만든 것이 계수기라고 하네요!
계수기는 9999번을 채우면 10000이 되는 게 아니라 표시할 자리가 없어 처음인 1로 돌아가게 되는 기계인 거 다들 아시죠?! 아무튼 오버플로우는 컴퓨터에서 좋은 현상이 아니며 이를 방지하기 위해 충분히 크기가 큰 타입을 선택해서 사용해야 한다고 이야기를 들었습니다. 참고로 언더플로우도 있으며 언더플로우는 오버플로의 반대라고 생각하면 됩니다!
그럼 모두 좋은 하루 되길 바라며 2만 가보겠습니다 ~
'프로그래밍 > JAVA' 카테고리의 다른 글
[유튜브 : 뉴렉처님 강의] JDBC 1~ 12강 CRUD (0) | 2022.10.19 |
---|---|
자바 객체지향(2) (0) | 2021.12.29 |
자바 객체지향 (1) (0) | 2021.12.28 |
자바의정석 Chap 5 배열 두둥! (0) | 2021.12.22 |
자바 조건문과 반복문 (0) | 2021.12.20 |