프로그래밍 언어/Java

[Java] 자바 기본 문법 1

Campus Coder 2023. 4. 17. 16:50
728x90
반응형
/*
* 소스 파일 : Hello.java 
*/
public class Hello {
    public static int sum(int n, int m) {
    return n + m;
    }
	
    // main() 메소드에서 실행 시작
    public static void main(String[] args) {
    int i = 20;
    int s;
    char a;
    
    s = sum(i, 10); // sum() 메소드 호출
    a = '?';
    System.out.println(a); // 문자 '?' 화면 출력 
    System.out.println("Hello"); // "Hello" 문자열 화면 출력 
    System.out.println(s); // 정수 s 값 화면 출력
    }
}
/*	
*   출력 결과
*   ?
*   Hello
*   30
*/

코드 설명

클래스 만들기

  • Hello 이름의 클래스 선언
public class Hello {
}
  • class 키워드로 클래스 선언
  • public 선언하면 다른 클래스에서 접근 가능
  • 클래스 코드는 { } 안에 모두 작성

 

주석문

  • // 한 라인 주석
  • /* 여러 행 주석 */

 

main() 메소드

  • 자바 프로그램은 main()에서 실행 시작
public static void main(String [] args) {
}
  • public static viod으로 선언
  • String[] args로 실행 인자를 전달받음

 

메소드

  • C/C++에서의 함수를 메소드로 지칭
public static int sum(int n, int m) {
...
}
  • 클래스 바깥에 작성 가능

 

메소드 호출

  • sum() 메소드 호출
int i = 20;
s =sum(i, 10);
  • sum() 호출 시 변수 i의 값과 정수 10을 전달
  • sum()의 n, m에 각각 20, 10 값 전달
  • sum()은 n + m 값인 30 리턴
  • 변수 s는 정수 30 전달받음

 

변수 선언

  • 변수 타입과 변수 이름 선언
int i = 20;
char a;
  • 메소드 내에서 선언된 변수는 지역변수(메소드 실행이 끝나면 자동 소멸)

 

문장

  • ;로 한 문장의 끝을 인식
int i = 20;
s = sum(i, 20);

 

화면 출력

  • 표준 출력 스트림에 메세지 출력
System.out.println("Hello"); // Hello 화면 출력
  • 표준 출력 스트림 System.out의 println() 메소드 호출
  • println()은 여러 타입의 데이터 출력 가능
  • println()은 출력 후 다음 행으로 커서 이동

 

식별자

클래스, 변수, 상수, 메소드 등에 붙이는 이름

  • @, #, ! 등 특수 문자, 공백, 탭 사용 불가
  • _, $는 사용 가능 but 잘 사용하지 않음
  • 유니코드 문자, 한글 사용 가능
  • 자바 언어의 키워드 사용 불가
  • 첫 번째 문자로 숫자 사용 불가
  • true, false, null 사용 불가
  • 길이 제한 없음
  • 영문 대소문자 구분

 

언어 관습

가독성 높은 이름

- 목적을 나타내는 이름 붙이기: s 보다 sum

- 충분히 긴 이름 사용: AVM 보다 AutoVendingMachine

 

헝가리언 이름 붙이기

- 클래스 이름 -> 첫 번째 문자는 대문자, 각 단어의 첫 번째 문자만 대문자

- 변수, 메소드 -> 첫 단어 이후 각 단어의 첫 번째 문자만 대문자

- 상수 -> 모든 문자 대문자

 

데이터 타입

기본 타입

타입 이름 크기(바이트) 범위
논리 타입 boolean 1 (비트) true, false
문자 타입 char 2 Unicode
정수 타입 byte 1 -128 ~ 127
short 2 -32768 ~ 32767
int 4 -2^31 ~ 2^31-1
long 8 -2^63 ~ 2^63-1
실수 타입 float 4 -3.4E38 ~ 3.4E38
double 8 -1.7E308 ~ 1.7E308

 

레퍼런스 타입(종류 1개, 용도 3가지)

  • 배열에 대한 레퍼런스
  • 클래스에 대한 레퍼런스
  • 인터페이스에 대한 레퍼런스

 

문자열

  • 문자열은 기본 타입이 아님
  • 문자열이 섞인 + 연산 -> 문자열 연결

 

변수와 선언

변수

- 프로그램 실행 중 값을 임시 저장하기 위한 공간

- 데이터 타입에서 정한 크기의 메모리 할당

 

변수 선언

- 변수의 타입 다음에 변수 이름을 적어 변수를 선언

- , 를 사용하여 여러 개 동시 선언 가능

- 선언과 동시에 초기화 가능

- (변수) = (식)으로 값 저장

 

리터럴과 정수 리터럴

프로그램에서 직접 표현한 값

정수, 실수, 문자, 논리, 문자열 리터럴 존재

정수 리터럴

15 10진수 리터럴 15
015 0으로 시작하면 8진수, 십진수로 13
0x15 0x로 시작하면 16진수, 십진수로21
0b0101 0b로 시작하면 2진수, 십진수로 5

- int형으로 컴파일

- long 타입 리터럴은 숫자 뒤에 L 또는 l을 붙여 표시

 

실수 리터럴

소수점 형태나 지수 형태로 표현된 실수

- 실수 타입 리터럴은 double 타입으로 컴파일

- 숫자 뒤에 f(float)나 d(double)를 명시적으로 붙이기도 함

 

문자 리터럴

- 단일 인용부호 ' '로 문자 표현

- \u 다음에 4자리 16진수(2바이트의 유니코드)

- 특수문자 리터럴은 \로 시작

 

논리 리터럴

true, false

- boolean 타입 변수에 치환하거나 조건문에 이용

- C/C++와 달리 1, 0 사용 불가

 

null 리터럴

- 레퍼런스에 대입해서 사용

 

문자열 리터럴

- " "로 묶어 표현

- 문자열 리터럴은 String 객체로 자동 처리

 

상수

상수 선언

  • final 키워드 사용
  • 선언 시 초기값 지정
  • 실행 중 값 변경 불가
final double PI = 3.14

 

자동 타입 변환

- 작은 타입은 큰 타입으로 자동 변환

- 치환문이나 수식 내에서 타입이 일치하지 않을 때

 

강제 타입 변환

- 자동 타입 변환이 안 되는 경우: 큰 타입이 작은 타입으로 변환할 때

- () 안에 변환할 타입 지정

- 강제 변환은 값 손실 우려

byte b = (byte) n;
728x90
반응형

'프로그래밍 언어 > Java' 카테고리의 다른 글

[Java] 자바 기본 문법 4  (0) 2023.04.17
[Java] 자바 기본 문법 3  (0) 2023.04.17
[Java] 자바 기본 문법 2  (0) 2023.04.17
[Java] 자바 이론  (0) 2023.04.17