Java 기초

어제에 이어서 Java 기초 수업이 계속 되었다.
IntelliJ와 Java 설치가 안된다는 사람이 있어서 조금 지연되기는 했지만 수업은 정상적으로 진행되었다. 어제 조퇴를 해야해서 오프라인 강의는 못들었는데 온라인 강의 강사분이랑 다른 분이 들어오셔서 깜짝놀랐다. 사실 같은 분이면 어쩌지라는 생각을 조금 했다.


입출력 메소드

입력 메소드는 Java를 사용하면 기본으로 제공되는 메소드이다. 물론 그냥은 사용할 수는 없고
import를 이용해서 클래스를 가져와야 사용할 수 있다

import java.util.Scanner

이후 클래스 Scanner를 사용할 객체를 생성하고 그 객체를 이용해서 메소드를 이용하면 된다.

Scanner 객체이름 = new Scanner(System.in)

Scanner의 함수들은 많은 종류가 있지만 우리는 단순히 콘솔을 통해서 입력만 받을 것이기 때문에 next()나 next + 자료형() 등만 사용할 것이다.


출력 메소드는 콘솔에 값이나 문장을 출력을 도와주는 메소드이다.
출력은 따로 클래스를 가져와야할 필요는 없다.

println(): 문장 마지막에 줄바꿈을 포함해서 출력
print(): 문장 마지막에 줄바꿈을 포함하지않고 출력 
printf(): 포맷에 맞춰 문장을 출력

자료형

변수를 지정하기 위해서는 자료형(타입)을 지정해주어야 한다. 또한 타입에 따라서 저장할 수 있는 값의 종류나 범위가 달라지므로 유의해야 한다. 그리고 한 번 지정한 변수는 사용하는 동안에는 변경이 불가능하다.

원시 타입

boolean: 1바이트, 참 또는 거짓만 저장
char: 2바이트, Unicode/문자를 저장
byte: 1바이트, 정수를 저장
short: 2바이트 정수를 저장
int: 4바이트 정수를 저장
long: 4바이트 정수를 저장
float: 4바이트 실수를 저장 값 뒤에 f를 작성해서 저장함
double: 8바이트 실수를 저장

참조 타입

String : 데이터가 변수에 직접 저장되는 것이 아니라 객체가 힙 메모리에 생성되고 변수는 그 메모리의 위치를 참조

오버플로우와 언더플로우
변수에 선언된 데이터의 범위를 벗어난 값을 할당할 때 발생한다.
Java는 오버플로우와 언더플로우에 대한 예외를 발생하지 않는다.

byte b = (byte)128 -> -128로 출력

자료형 변환

자동 타입 변환(Promotion)
프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것을 말한다.
변환 이후에도 데이터 손실이 없다.

큰 크기 타입 = 작은 크기 타입

int intValue = 200;
double doubleValue = intValue; // 200.0

char charValue = 'A';
int intValue = charValue; // 65

강제 타입 변환(Casting)
데이터 손실이 발생할 수 있다.

작은 크기 타입 = (작은 크기 타입) 큰 크기 타입

double doubleValue = 3.14;
int intValue = (int) doubleValue; // intValue는 정수 부분인 3만 저장됨
System.out.println(intValue); // 3

실습 및 개인 과제

실습 1

  • Sally는 새로운 노트북을 구매하려고 한다.

  • 노트북 제품값과 Sally가 낸 돈을 콘솔을 통해 사용자에게 입력받는다고 가정하자.

  • Sally가 받을 잔돈을 계산하시오.

    노트북 총액 = 노트북 제품값 + 노트북 제품값의 10% 부과세

https://github.com/baker-lee/JavaStudy/blob/master/src/Test/sallynotebook.java

실습 2

  • 두 수를 사용자에게 입력받아 두 수 중 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
https://github.com/baker-lee/JavaStudy/blob/master/src/Test/MaxandMin.java

실습 3

  • 윤년 판단 프로그램
  • 연도를 사용자에게 입력받아 해당 연도가 윤년인지 아닌지 검사하는 프로그램을 작성하시오.
  • 아래의 조건 중 하나만 만족해도 윤년이라고 가정 🗓
    • 4의 배수이어야하고 100의 배수가 아니어야 함
    • 400의 배수는 무조건 윤년이 됨
  • 출력 결과
    • 해당 연도가 윤년이 아니면 평년 출력
    • 해당 연도가 윤년이면 윤년 출력
https://github.com/baker-lee/JavaStudy/blob/master/src/Test/Yoonyear.java

실습 4

  • 양수 음수 판단 프로그램
  • 정수를 사용자에게 입력받아 해당 정수가 음수인지 양수인지 판단하는 프로그램을 작성하시오.
  • 출력 결과
    • 해당 수가 0보다 크면 양수 출력
    • 해당 수가 0보다 작으면 음수 출력
    • 해당 수가 0이면 0 출력
https://github.com/baker-lee/JavaStudy/blob/master/src/Test/PosiNega.java
profile
이따금씩 올라오는 개발자 블로그

0개의 댓글