자바 1일차일차

moon.kick·2025년 2월 12일

집에서 30분거리의 오리역으로 첫날, 총 열아홉분과 함께 대면으로 수업을 듣는다

https://www.azul.com/downloads/#zulu
에서 17버전 윈도우 맨위 다운로드!

커맨드창에서 확인

java -version
javac
#bin 폴더안에 exe모음들
javadoc

자바코드는 소스 경로 어디서든 돌아가는 path설정=>ping명령어

자바버전 특징
11: Optional class에 새로운 메소드 추가(ifPresent, ifPresentOrElse)
17:

  • String 여러 줄 사용 시 텍스트 블록 기능 사용 가능
  • Stream.toList() 사용 가능9:모듈시스템(Java Platform Module System)리액트, 모듈화시켜서 배포하는거

!!이클립스는 모듈시스템으로된당. 컴파일시스템

1이클립스피쳐랑
2"비주얼스튜디오 코드"
3"인텔리제이<부트용>"쓴당

//객체지향언어, 클래스
//개념=클래스+필드+메소드

class Test{
//클래스 만들거야 이름은 Test야
public static void main(String [ ] args){
// ㄴ메인메소드
//실행을 위해 필요한 메인메소드
//외우기
//필드랑 메소드는 소문자시작, 메소드는( )가 붙는다
//모니터출력해주세요
System.out.println("반갑습니다.");
//println은 다음줄로 내리기
System.out.print("열심해보아요.");
//클래스이름.필드.메소드이름
}
}
// 바이트코드변환하기-컴파일과정을 거친다=인터프리터언어(자바스크립트)
//파워쉘에서 javac Test.java > Test.class가 생긴다 (이클립스는 쩜자바 쩜클래스 분류해줭)
//파워쉘에서 java Test >실행시킬 클래스이름이얌

갑자기? Test에서,,, 클래스 이름이 System 인가?
System은 자바에서 제공하는 표준 라이브러리 클래스 중 하나일 뿐입니다. 우리가 직접 만든 Test 클래스와는 전혀 다른, 자바가 미리 만들어 둔 클래스이고, System.out.println() 같은 형태로 자주 사용합니다.

정리해보면 다음과 같습니다:

  1. System 클래스

    • 자바의 표준 라이브러리(java.lang 패키지)에 포함되어 있습니다.
    • 입출력, 환경 변수, 시간 같은 시스템 관련 기능을 제공합니다.
  2. out 필드

    • System 클래스 안에 선언된 정적 필드(Static Field) 입니다.
    • PrintStream 타입이며, 콘솔(모니터)에 데이터를 출력할 때 사용합니다.
  3. println() 메서드

    • out이 참조하는 PrintStream 객체가 가진 메서드 중 하나입니다.
    • 주어진 데이터를 출력한 뒤 줄바꿈(\n)을 해줍니다.

System.out.println("...") 을 써야할까?

  • 우리가 만든 클래스(Test)는 자바 프로그램의 시작점인 main 메서드를 갖고 있어서, 프로그램이 실행될 때 진입점 역할만 합니다.
  • 콘솔에 무언가를 출력하려면, 자바가 미리 제공하는 PrintStream 객체(System.out)의 println() 메서드를 호출해야 합니다.
  • 그게 바로 System.out.println("반갑습니다.") 의 동작 원리입니다.

Test 클래스와 System 클래스의 관계

  • Test 클래스: 사용자가 작성한 사용자 정의 클래스
  • System 클래스: 자바에서 제공하는 이미 만들어진 표준 클래스

서로 다른 역할을 하는 클래스들이며, 클래스 이름이 System으로 보이는 것은
“자바가 제공하는 정해진 클래스 이름”을 사용하고 있기 때문입니다.

즉,

System.out.println("메시지");

코드에서 System사용자가 만든 클래스가 아니고, 자바가 기본적으로 제공하는
표준 라이브러리 클래스라고 이해하시면 됩니다.

그럼 파일 이름이 플래스Test라고 생각하고,
자바안의 Sytem클래스는 파이썬의 라이브러리?정도라고 생각하면되니?

네, 맞습니다!

  • 우리가 만든 자바 파일 이름(Test.java)과,
  • 자바에서 미리 제공하는 System 클래스는 완전히 별개의 것이에요.

자바 안의 System 클래스는 자바가 기본적으로 제공하는 표준 라이브러리 클래스 중 하나로,
파이썬으로 치면 import sys처럼 미리 만들어진(= 표준 라이브러리) 기능을 쓸 수 있게 해 주는 것과 비슷합니다.

  • 파이썬에는 sys 라는 모듈(라이브러리)이 있어서 시스템 관련 변수를 다루거나,
    입출력(stdin, stdout) 같은 기능을 제공합니다.
  • 자바에서는 System 클래스를 통해
    표준 입력(System.in), 표준 출력(System.out), 에러 출력(System.err) 등을 제공합니다.

즉,
1. 파일 이름(Test.java)은 우리가 만든 클래스(Test)의 이름과 동일해야 하고,
2. System은 이미 자바에 내장된 클래스 이름일 뿐이라서,
파이썬 표준 라이브러리처럼 “시스템 관련 기능”을 제공하는 도구라고 보면 됩니다.

profile
@mgkick

0개의 댓글