TIL/[TIL]

[TIL]Java 기초 문법, 연산자, 메서드와 패키지/임포트

namerong 2026. 4. 29. 15:08

1. 오늘 학습 주제

Java의 가장 기초가 되는 문법 흐름을 정리했다.
리터럴과 변수부터 시작해서, 상수와 형변환, 연산자, 메서드 호출 방식, 그리고 package와 import를 통한 클래스 사용까지 전체적인 기본 구조를 익혔다.

  • 리터럴과 자료형 이해하기
  • 변수 선언과 초기화 방식 익히기
  • final을 사용한 상수 선언 배우기
  • 자동 형변환과 강제 형변환 이해하기
  • 오버플로우가 발생하는 이유 확인하기
  • 산술, 비교, 논리, 삼항 연산자 사용하기
  • 메서드 호출 구조와 전달인자/매개변수 구분하기
  • static 메서드와 일반 메서드 차이 이해하기
  • package, import, Math, Random 사용법 익히기

2. 리터럴과 자료형

가장 먼저 Java에서 직접 값을 작성하는 방식인 리터럴을 학습했다.
정수, 실수, 문자, 문자열, 논리값이 각각 어떤 형태로 표현되는지 확인했다.

System.out.println(123);
System.out.println(1.23);
System.out.println('a');
System.out.println("안녕하세요");
System.out.println(true);
  • 정수는 123처럼 작성한다.
  • 실수는 1.23처럼 작성한다.
  • 문자는 'a'처럼 작은따옴표를 사용한다.
  • 문자열은 "안녕하세요"처럼 큰따옴표를 사용한다.
  • 논리값은 true, false로 표현한다.

3. 변수와 초기화

변수는 데이터를 저장하기 위한 메모리 공간이며, 자료형에 맞게 선언해야 한다.
또한 변수를 선언한 뒤 처음 값을 넣는 과정을 초기화라고 한다.

int point = 100;
boolean isTrue = true;
String str;
  • 변수는 자료형 변수명; 형태로 선언한다.
  • 기본 자료형으로 정수, 실수, 문자, 논리형을 사용할 수 있다.
  • 문자열은 기본 자료형이 아니라 String으로 다룬다.
  • 선언과 동시에 값을 넣을 수도 있고, 나중에 초기화할 수도 있다.

4. 상수와 final

변하지 않는 값을 저장할 때는 final 키워드를 사용해 상수를 만든다.
상수는 한 번 값이 저장되면 다시 변경할 수 없다.

final int AGE = 20;
final int MAX_AGE = 50;
  • 상수는 final 키워드로 선언한다.
  • 초기화 이후에는 값을 다시 대입할 수 없다.
  • 이름은 보통 모두 대문자로 작성하고, 단어 사이는 _로 구분한다.

5. 형변환과 오버플로우

Java에서는 자료형이 다른 값끼리 연산할 때 형변환이 일어난다.
작은 자료형에서 큰 자료형으로는 자동 형변환이 가능하고, 반대는 강제 형변환이 필요하다.

byte bnum = 1;
short snum = bnum;
long lnum1 = 8;
int inum1 = (int) lnum1;
  • 작은 범위에서 큰 범위로는 자동 형변환이 된다.
  • 큰 범위에서 작은 범위로는 (자료형)을 사용한 강제 형변환이 필요하다.
  • 실수를 정수로 바꾸면 소수점 아래 값은 손실된다.

오버플로우도 함께 확인했다.

byte num1 = 127;
num1++;
System.out.println(num1);   // -128
  • 자료형이 표현할 수 있는 최대 범위를 넘으면 값이 순환한다.
  • int 범위를 넘는 큰 계산은 결과가 잘못될 수 있다.
  • 큰 수 연산은 계산 전에 long으로 바꿔야 안전하다.

6. 연산자

산술, 비교, 논리, 삼항 연산자를 예제를 통해 확인했다.

int result = ++firstNum * 3;
System.out.println(num1 == num2);
System.out.println(a < b && c > d);
String result2 = (num1 > 0) ? "양수다." : "양수가 아니다.";
  • 산술 연산자로 +, -, *, /, %를 사용한다.
  • 증감 연산자 ++, --는 위치에 따라 실행 시점이 달라진다.
  • 비교 연산자는 결과를 true 또는 false로 반환한다.
  • 논리 연산자는 여러 조건식을 결합할 때 사용한다.
  • 삼항 연산자는 조건에 따라 두 값 중 하나를 선택할 때 사용한다.

문자열 비교 방식도 배웠다.

System.out.println(str1.equals(str4));
  • 문자열은 ==보다 .equals()로 비교해야 한다.
  • ==는 주소값 비교, .equals()는 실제 값 비교이다.

7. 메서드와 호출 흐름

메서드는 특정 작업을 수행하는 명령문의 묶음이다.
코드를 기능별로 나눌 수 있고, 호출 흐름도 더 명확하게 만들 수 있다.

public void methodA() {
    methodB();
}
  • 메서드는 반복되는 작업을 분리할 때 유용하다.
  • 한 메서드 안에서 다른 메서드를 호출할 수 있다.
  • 프로그램 실행 흐름을 단계적으로 나눠서 이해할 수 있다.

전달인자와 매개변수도 함께 학습했다.

app2.printUserInfo("판다", 45, 'M');
  • 메서드를 호출할 때 넘기는 값은 전달인자(argument)이다.
  • 메서드에서 받는 변수는 매개변수(parameter)이다.
  • 타입, 개수, 순서를 맞춰서 전달해야 한다.

반환값도 확인했다.

public String createProfile(String name, int age) {
    return name + "님의 나이는 " + age + "세 입니다.";
}
  • void가 아닌 메서드는 반드시 값을 return 해야 한다.
  • 반환값은 변수에 저장하거나 바로 사용할 수 있다.

8. static 메서드와 일반 메서드

메서드는 크게 일반 메서드와 static 메서드로 나눌 수 있다.

public int minNumberOf(int first, int second) { ... }
public static int maxNumberOf(int first, int second) { ... }
  • 일반 메서드는 객체를 생성한 뒤 호출해야 한다.
  • static 메서드는 클래스명으로 바로 호출할 수 있다.
  • 같은 클래스 안에서는 static 메서드 호출 시 클래스명을 생략할 수도 있다.
System.out.println(Application3.sumTwoNumbers(10, 29));

9. package와 import

클래스가 서로 다른 위치에 있더라도 package와 import를 사용하면 필요한 클래스를 가져와 사용할 수 있다.

import com.ohgiraffers.section01.method.Calculator;
  • package는 클래스를 논리적으로 구분하는 폴더 개념이다.
  • import를 사용하면 긴 클래스 경로를 매번 쓰지 않아도 된다.
  • 다른 패키지에 있는 클래스도 편하게 재사용할 수 있다.

10. Math와 Random API

기본 제공 API도 함께 연습했다.
Math 클래스와 Random 클래스를 사용해 수학 계산과 난수 생성을 해봤다.

System.out.println(Math.min(34, 46));
System.out.println(Math.PI);
System.out.println(Math.random());
Random random = new Random();
int randomNum = random.nextInt(10);
  • Math는 자주 쓰는 수학 기능을 제공한다.
  • Math.random()은 0.0 이상 1.0 미만의 실수를 반환한다.
  • Random 객체를 사용하면 원하는 범위의 정수 난수를 만들 수 있다.

11. 오늘 학습 흐름 정리

11.1 Java 기본 문법

  • 리터럴의 종류 확인
  • 변수 선언과 초기화 학습
  • 상수 final 사용법 익히기
  • 자동 형변환, 강제 형변환 이해
  • 오버플로우 발생 원리 확인

11.2 연산과 메서드

  • 산술, 비교, 논리, 삼항 연산자 학습
  • 문자열 비교 시 .equals() 사용 이유 이해
  • 메서드 호출 구조와 반환값 학습
  • static 메서드와 일반 메서드 차이 학습

11.3 클래스 활용

  • package와 import 개념 정리
  • Math, Random 같은 Java API 사용 연습

12. 오늘 배운 핵심 정리

  1. Java의 값은 리터럴 형태로 작성하며, 자료형에 따라 표현 방식이 다르다.
  2. 변수는 자료형에 맞게 선언하고 초기화해야 한다.
  3. 상수는 final로 선언하며 한 번 값이 정해지면 변경할 수 없다.
  4. 작은 자료형에서 큰 자료형으로는 자동 형변환이 가능하다.
  5. 큰 자료형에서 작은 자료형으로 바꿀 때는 강제 형변환이 필요하다.
  6. 자료형 범위를 넘는 연산은 오버플로우가 발생할 수 있다.
  7. 문자열 비교는 ==가 아니라 .equals()를 사용해야 한다.
  8. 메서드는 기능 단위로 코드를 분리하고 재사용성을 높여준다.
  9. 전달인자와 매개변수는 서로 다른 개념이다.
  10. static 메서드는 객체 생성 없이 클래스명으로 호출할 수 있다.
  11. package와 import를 사용하면 다른 클래스와 API를 효율적으로 사용할 수 있다.
  12. Math와 Random은 Java에서 자주 쓰이는 기본 API이다.