일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 수동설치
- aws
- deeplearning
- 셀레니움
- Selenium
- AndroidStudio를활용한안드로이드프로그래밍
- Crawling
- image
- 컴파일설치
- 크롤링
- CBOW
- 밑바닥부터시작하는딥러닝
- 생활코딩
- 논문리뷰
- jupyter
- MySQL
- 한빛아카데미
- 딥러닝
- 가비아
- 한빛미디어
- word2vec
- 머신러닝
- attention
- 프로그램새내기를위한자바언어프로그래밍
- 비지도학습
- Lamp
- Apache
- 밑바닥부터시작하는딥러닝2
- 예제중심HTML&자바스크립트&CSS
- 소스설치
- Today
- Total
안녕, 세상!
2. 자바 문법 기초 본문
(1) 클래스 구조
자바 프로그램의 기본 단위는 클래스(Class)로 이루어집니다.
클래스의 구조는 다음과 같습니다.
클래스를 정의하기 위해서 이름이 필요하고 이클립스에서는 이름을 한글로 설정 가능합니다.
클래스에는 한 개 이상의 필드와 한 개 이상의 메소드가 포함될 수 있습니다.
필드는 클래스가 자신의 기능을 구현하는데 있어 필요한 데이터를 선언하는 부분입니다.
메소드는 클래스 자신의 기능을 구현하기 위한 실질적인 실행문으로 구성되며 C언어에서 함수라고 생각하면 됩니다.
해당 클래스가 실행되기 위해서는 반드시 'main'이라는 이름의 메소드가 포함되어야 합니다.
실행문 맨 뒤에는 세미콜론(;)으로 종료되어야 합니다.
주석문
자바의 주석문은 여러 긴 줄을 주석 처리할 경우 /* */ 를 사용하고 해당한 줄만 주석 처리할 경우 // 기호를 사용합니다. (C언어와 동일합니다.)
(2) 변수
① 자바 언어의 기본 자료형
자료 유형 | 기본 자료형 | byte 수(bit) |
논리형 | boolean | 1(8) |
문자형 | char | 2(16) |
정수형 | byte | 1(8) |
short | 2(16) | |
int | 4(32) | |
long | 8(64) | |
실수형 | float | 4(32) |
double | 8(64) |
기본 자료형을 사용한 예시입니다.
char이 자료형인 변수 c에는 숫자가 들어가면 오류가 납니다.
문자형 데이터는 오직 문자만 가능합니다.
②변수의 형 변환
(1) 묵시적 형 변환(implict type conversion)
데이터의 손실 없이 크기가 작은 자료형에서 큰 자료형으로 변환할 경우, 오류를 발생하지 않고 자바 내부적으로 자동으로 형 변환을 해주는 것을 말합니다.
변수 a에는 10이라는 int형 데이터가 들어있습니다.
자료형이 long인 변수 d에 int형 데이터 값인 10이 저장되면 자동으로 형 변환이 일어나 10.0이라는 실수 값이 변수 d 에 저장됩니다.
(2) 명시적 형 변환(explict type conversion)
변수의 값이나 연산의 결과 값을 원하는 형태의 변수형으로 강제적으로 변환하는 것입니다.
Java 형변환
// Byte <-> String
strval = Byte.toString(byteval);
byteval = Byte.parseByte(strval);
// Integer <-> String
strval = Integer.toString(intval);
intval = Integer.parseInt(strval);
// Long <-> String
strval = Long.toString(longval);
longval = Long.parseLong(strval);
// Float <-> String
strval = Float.toString(floatval);
floatval = Float.parseFloat(strval);
// Double <-> String
strval = Double.toString(doubleval);
doubleval = Double.parseDouble(strval);
(3) 연산자
① 연산자의 종류
연산자의 종류 | 연산자 |
대입 연산자 | =, +=, -=, *=, /=, %= |
산술 연산자 | +, -, *, /, % |
관계 연산자 | >, >=, <, <=, ==, != |
논리 연산자 | &&, &, ||, |, ! |
비트 연산자 | <<, >>, &, |, ^, ~ |
②연산자의 우선순위
C언어와 대부분 비슷하기 때문에 필요한 부분만 표로 설명하겠습니다.
비트 단위 논리 연산자
연산자 | 연산자명 | 사용 예 | 의미 |
& | 비트 AND | a&b | 비트 단위로 둘 다 1일 때만 1 나머지는 0 |
| | 비트 OR | a|b | 비트 단위로 둘 다 0일 때만 0 나머지는 1 |
^ | 비트 XOR | a^b | 비트 단위로 두 개의 비트가 다르면 1, 같으면 0 |
~ | 1의 보수 | ~a | 1은 0으로 0은 1로 |
비트 단위 시프트 연산자
연산자 | 연산자명 | 사용 예 | 의미 |
<< | 왼쪽 시프트 | a<<N | a를 왼쪽으로 N비트 시프트 |
>> | 오른족 시프트 | a>>N | a를 오른쪽으로 N비트 시프트 |
왼쪽 시프트 예시
③ 3항 조건 연산자
조건에 따라 다르게 실행되며 '?'와 ':' 기호를 사용합니다.
형식: 조건식 ? 실행문1 : 실행문2
의미: 조건식이 참이면 '실행문1'을 실행하고 거짓이면 '실행문2'를 실행합니다.
(4) 문자 입출력
① 출력
자바 언어에서의 문자 출력 기능은 System.out 객체를 이용하여 화면에 글자를 출력합니다.
메소드 명 | 의미 |
System.out.println() | 지정된 문자를 출력한 후 커서를 다음 줄로 이동(문자 출력 후 '\n'을 출력함) |
System.out.print() | 지정된 문자를 출력함(문자 출력 후 '\n' 출력하지 않음) |
특수 문자의 출력
특수 문자 | 이름 | 기능 |
\n | new line | 커서가 다음 줄로 이동함 |
\t | tab | 커서가 탭 간격으로 이동함 |
\b | backspace | 커서가 뒤로 이동함 |
\r | carrage return | 커서가 맨 앞으로 이동함 |
문자열 연결
문자열을 연결하여 출력하는 방법은 위의 예시에서 봤듯이 '+' 연산자를 이용해서 문자열을 연결합니다.
② 입력
키보드로부터의 문자 입력을 받기 위해서 System.in 객체를 이용합니다.
system.in 객체는 키보드로부터 입력되는 키 값을 바이트로 받아들이기 때문에 입력된 키를 문자로 쉽게 인식하기 위해서는 Scanner 클래스를 가져와서 같이 사용해야 합니다.
클래스를 가져오기 위해서 import 문을 사용합니다.
Scanner 클래스의 메소드
메소드 명 | 기능 |
next() | 다음 아이템을 문자열 형태로 반환함 |
nextByte() | 다음 아이템을 byte 형태로 반환함 |
nextShort() | 다음 아이템을 short 형태로 반환함 |
nextInt() | 다음 아이템을 int 형태로 반환함 |
nextLong() | 다음 아이템을 long 형태로 반환함 |
nextFloat() | 다음 아이템을 float 형태로 반환함 |
nextDouble() | 다음 아이템을 double 형태로 반환함 |
nextLine() | 한 라인 전체('\n')를 문자열 형태로 반환함 |
다음은 입출력을 사용한 예시입니다.
위에서 말했듯이 Scanner 클래스를 사용하기 위해서 import문을 사용해 클래스를 불렀습니다.
next()와 nextLine()의 차이점은 next() 메소드는 스페이스나 탭으로 구분된 문자열을 입력받을 때 사용되고, nextLine()은 스페이스나 탭을 포함한 문장 자체를 문자열로 입력받을 때 사용할 수 있습니다.
자료형이 String인 변수를 System.out.println()으로 맨 앞에 출력할 때 맨 앞에 '+'를 붙이지 않습니다.
'It공부 > Java' 카테고리의 다른 글
6. 윈도우 프로그래밍 (0) | 2020.07.12 |
---|---|
5. 클래스 상속 (0) | 2020.07.11 |
4. 클래스와 객체 (0) | 2020.07.10 |
3. 자바 문법 기초2 (0) | 2020.07.09 |
1. java 기본 및 설치 (0) | 2020.07.05 |