[자바 day1] 자바 프로그램의 구조와 기본 문법

2023. 1. 25. 15:54자바/[쉽게 배우는 자바 프로그래밍] 개념

 

Import module

Import 뒤에는 module이 와야 합니다.

ex: Import math

 

프로그래밍 과정에서

범주가 비슷한 함수,클래스를 쓰게 되는데 수학관련 함수를 쓰게 될 때가 있습니다.

이때, pow() sqrt() sin() cos() tan() 같은 함수들이 math라는 하나의 모듈로 묶어져 있습니다.

 

위 함수를 쓰기 전에 import math를 해줍니다.

 

이렇듯 비슷한 종류의 내용들을 같은 모듈로 묶어주는 것입니다.

 

자바는 완전한 객체지향언어이기 때문에

소스파일(src) 만들었으면 반드시 클래스를 만들어줘야합니다.

 

New Java Class

 

Modifiers 접근권한지정자

 

method

파이썬에서의 메서드는 클래스 안에서 정의한 함수라고 배웠습니다.

메서드는 '클래스 안에 소속된 멤버함수'라고 할 수 있습니다.

 

파이썬에선 클래스 안 쓰고도 코딩할 수 있었습니다.

그러나 자바는  완벽한 객체지향언어입니다.

이렇기에 반드시 클래스를 사용합니다. 그리하여 백프로 다 메서드입니다.

 

public static void main : 메인함수를 기본적으로 만들어달라는 것

 

 

글꼴 변경

 

[Window] - [Preferences] - [General] - [Appearance] - [Colors and Fonts] - [Basic] - [Text Font] - [Edit]

 

글꼴 확대 ctrl + Shift + '+'

글꼴 축소 ctrl + '-'

 

 

자바의 기본형태

 

{ }

파이썬의 for문이나 if문에서의 : 과 같습니다.

구별하기 위해서 중괄호 안에 명령문들을 묶어놓겠다는 의미입니다.

 

args(arguments)

함수안에 매개변수를 의미하는 args(arguments)입니다.

 

[ ]

파이썬의 대괄호는 리스트를 만들 때 사용했습니다.

대괄호로 인덱스하기도 했습니다.

파이썬의 리스트는 서로 다른 데이터타입을 한꺼번에 저장할 수 있는 기능이었죠.

 

이 파이썬의 리스트와 똑같진 않지만 비슷한 것을 배열 array라고 합니다.

 

String[]

파이썬에서는 데이터타입을 직접적으로 나타내지 않았지만,

자바에서는 이렇게 데이터타입을 나타내줍니다. String[ ] 이런 식입니다.

 

 

주석처리

// : 한줄 주석

/* */ : 여러줄 주석

print()
내용을 출력만 하고 행바꿈 안 해줌

 

System.out.print("Hello JAVA");

파이썬에서 그냥 print()해줬던 걸,

자바에서는 귀찮게

 
RUN 버튼
단축키 : ctrl + F11

Hello JAVA

이렇게 써줍니다.

그리고 모든 명령문의 끝에 ;(세미콜론)을 찍어야 합니다.

 

런할 때는 저장을 해주고 런해줘야합니다.

 

자바의 print는 자동으로 줄바꿈해주지 않습니다.

 

Hello JAVAINHA

 

행바꿈 \n

Hello JAVA
INHA

 

귀찮지요..

print함수 말고 다른 함수를 쓰면 됩니다!

println()
내용 출력 후 행 바꿈

println() :자동으로 줄바꿈해주는 함수

new line을 거꾸로 해서 ln

 

 

Study
Hello JAVA
INHA

 

printf()
포맷 지정해서 출력해줌. 행바꿈 안 해줌

 

파이썬에서,

a = 7           # 7을 a에 할당(assign)한다.
print("a = %d" % a)             # %d -> decimal

 

%에 10진 정수 서식으로 출력하겠다는 뜻입니다.

이런 함수가 java에도 있습니다.

 

printf() :

(f의 의미는 formatted이고, 이는 '서식화된'이라는 뜻입니다.

정수 서식이는 문자열 서식이든.. 서식을 갖춰서 출력하라는 의미입니다.)

Study
Hello JAVA
INHADecimalNum=7

 

데이터 타입 명시

에러!!

a라는 변수 선언하면서 5라는 정수값을 넣어주고 있으니 a라는 변수의 타입은

반드시 정수형이 되어야합니다.

파이썬에서는 그것을 생략했지만 자바에서는 이 데이터 타입을 반드시 명시해주어야 합니다.

 

int a = 5 ;

Study
Hello JAVA
INHADecimalNum=7a=5

 

줄바꿈 처리

Study
Hello JAVA
INHA
DecimalNum=7
a=5

 

실수

실수를 출력할겁니다.

 

수학에서의 실수는 허수와 구분되는 개념이지만,

프로그래밍언어에서의 실수는 정수와 구분되는 개념입니다.

 

프로그래밍에서 실수의 두가지로 표현 형태

1. 고정소수점형 숫자형태

ex: 3.14, 6.28 

2. 부동소숫점형 숫자형태

ex: -0.04×101, -0.04e+1

# (浮動); 움직이지 않는다는 의미가 아니고 소수점이 둥둥 떠다닌다는 의미의 '부동'

소수점의 위치를 고정하지 않습니다.

 

float / double

 

자바에서 실수타입을 표시하는 키워드 두가지

1. float

=> 메모리에 4byte 할당 = 32bit

2. double

=> 메모리에 8byte 할당 = 64bit 

 

 

float 에러

 

에러!
해결책의 파란글씨

float 에러 해결방법

1. float 타입으로 cast를 추가하라.

2. 데이터타입을 float에서 double로 바꿔라. (더 큰 메모리 공간)

 

해결방법 1. float 타입으로 cast를 추가하라.

3.14를 4byte짜리 float 타입으로 인식해주기.

cast

cast는 형 변환이라는 의미입니다.

여기서의 형 변환은 소괄호로 (float) 이라고 써줍니다.

 

출력해줍니다.

fv=3.14

 

fv를 3.14라는 문자열로 바꿔서

하나의 문자열을 출력한 겁니다.

 

 

해결방법 2.데이터타입을 float에서 double로 바꿔라.

 

메모리 특정 주소에 저장해놓은 3.14를 fv에 할당해주겠다는 겁니다.

이 실수를 저장하기위해서 메모리타입을 저장하는 컴파일러는 큰 것으로 할당해줍니다.

4byte보다는 8byte가 좋습니다.

 

여러가지 형식으로 입출력

fv=3.14
fv=3.14
fv=3.140000

3.140000 거슬립니다..

 

소수점 출력

소수점 개수 제한

System.out.printf("fv=%.2f\n", fv);

 

fv=3.14

소수점이하 둘째짜리까지만 출력해달라.

 

 

자리확보

 

+ 오른쪽 정렬

System.out.printf("fv=%07.2f\n", fv);

 

fv=0003.14

 

총 일곱자리 확보해라.

 

0을 빼면

System.out.printf("fv=%7.2f\n", fv);

fv=     3.14

+7.2라서 오른쪽정렬을 해줍니다.

 

- 왼쪽 정렬

System.out.printf("fv=%-7.2f\n", fv);

fv=3.14      

 

추가적으로

더블도 출력해주겠습니다.

 

dv=6.28

 

문자

 

ch=A

 

 

대문자 A를 정수형으로 출력하길 원합니다.

ch=A
ch=65

대문자 A의 아스키코드는 '65'입니다.

 

아스키코드 표

나무위키

문자로 해석하느냐

정수로 해석하느냐의 차이입니다.

 

 

String

 

String은 자바에서 미리 만들어놓은 클래스입니다.

String타입의 네임변수에는 문자열이 저장됩니다.

 

여러가지 형식으로 입출력

 

name = gildong
name = gildong
name = gildong

 

System.out.println() 생성
단축키

syso =>  [ctrl] + [스페이스바] => 엔터

 

 

상수
final

 

PI=3.140000
PI=3.14

 

연산

s=25. p=1

 

m=5

 

메서드

 

 

out이라는 객체가 가지고 있는 메서드들이 보여집니다.

 

flash청소한다

 

System.out.write( )

문자하나를 출력할 때 씁니다.

A

아스키코드에 해당하는 문자를 출력합니다.

 

 

 

\'
\"

 

작은 따옴표라는 문자 자체를 출력하라는 의미입니다. \' hello\'

in English 'hello'
in English 'hello'

근데 이 문장에서는 작은 따옴표, 큰 따옴표 각각 짝을 잘 이루고 있기 때문에 \' 가 딱히 필요없습니다.

 

에러
in English "hello"

이 경우처럼 큰 따옴표의 영역이 의도와 다르게 지정돼서 에러가 발생되는 문장에 유용하게 쓰입니다.

 

 

\\
역슬래쉬 문자 자체 출력

\hello\