자바 프로그램 구조 및 데이터 타입
■ 자바 프로그램 기초
- 자바 프로그램은 하나의 .java 파일에 하나의 클래스를 정의함
- 클래스 내부에 실행에 필요한 변수나 메서드등을 정의함
클래스 (Class) : 자바 프로그램의 최소 구성단위, 자바 코드는 클래스 블록( {} )안에 작성된다.
public class FirstClass{
// 실행할 내용
}
public : 자바 예약어로써, FirstClass.java 파일의 클래스를 외부에 공개함
예약어 : 시스템에서 일정 특성을 가진 언어로 등록된 것, 데이터 타입이나 프로그램 정의를 위해 사용됨
ex) int, float, if, for, while, super ⋯
주석문 : 작성 일자, 버전, 작성자, 작성목적 등 프로그램 내에 부분적인 요소들에 대한 설명이 필요할 때 사용
파일의 크기는 늘어나지만 컴파일 시 프로그램 코드로 인식되지 않는다.
.class 파일의 크기에는 영향이 없다.
- // : 단일행 주석 처리
- /* */ : 다중행 주석 처리
- /** */ : Javadoc 형태의 주석처리 ( 자바 프로그램의 저작권 등의 형태를 나타내는 데에 사용)
클래스 블록( {} ) : 블록의 시작과 끝이 짝을 이루지 않으면 컴파일 오류 발생
클래스, 메서드, 자바 구문(if, for, try ~ catch)에 사용.
세미콜론( ; ) : 자바 문장이 여러 라인 또는 한 라인으로 이루어질 때 각 문장을 구분
public class JavaApp{
// 변수 선언
// 메서드 선언
public static void main(String args[]){
//실행될 프로그램 코드
System.out.println("FirstApp 애플리케이션입니다.");
}
}
main(String args[]) : 프로그램을 시작하여 특정 작업 수행
도스를 통해서 > javac FirstApp.java를 실행하면 .class파일이 생성된다.
식별자 생성 규칙
- 첫 문자는 A-Z, a-z, _, $, 유니코드(Unicode)로 시작해야 함
- 특수문자 사용 불가 ex) !, @, #, %, &, * 등
- 대소문자를 구별하고, 길이에 제한이 없음
- 예약어를 포함할 수 있으나, 예약어만 사용 할 수 없음
- 첫 문자에는 숫자 사용 불가
∴ 관례상 클래스 이름은 대문자로, 메서드 이름은 소문자, 변수는 소문자, 상수는 대문자로 시작
■ 자바 데이터 타입과 변수
프로그램 언어에서는 사용할 데이터를 변수에 저장하고 관리함.
정의된 변수를 통해 데이터의 의미를 정확하게 해석하여 사용
데이터 타입 : 데이터의 성격을 규정
- 논릿값 : boolean
- true/false
- 단일 문자 : char
- 홑따옴표( ' ' ) 안에 넣어서 사용
- 유니코드 표현 시 \u라고 명시하고 4개의 16진수 값을 표기한 문자 사용
- 정수 : byte, short, int, long
- 실수 : float, double
데이터 타입 범위에 초과하는 값을 저장하면 컴파일 시 오류 발생
+, - 등의 연산 결과로 값의 범위를 초과하는 경우에도 오류 발생
변수 : 프로그래머가 메모리상 데이터에 접근하기 위한 방법
한가지 유형의 데이터만을 저장할 수 있고, 각 변수가 저장할 수 있는 데이터 유형이 정해져 있음
기본형(Primitive Type)과 참조형(Reference Type) 두 가지 변수가 존재함
변수 선언시 데이터 타입과 변수명 사이 하나 이상의 공백이 필요
int val; // 변수 선언, 선언된 변수에 값을 대입하는 것을 변수 할당이라 함
val = 25; // 변수 초기화, 처음 값을 할당하는 것을 변수 초기화라 함
기본형의 경우 할당된 메모리에 직접 값이 들어감.
자바에서는 변수에 값을 할당하지 않은 경우 자동으로 초기화됨 (defalut 초기화) .
단, 지역변수는 자동으로 초기화되지 않음
전역(Global) 변수 : 클래스 선언부 밑에 선언된 변수
여러 메서드에서 공통으로 사용 가능
지역(Local) 변수 : 메서드 선언부 밑에 or 메서드 매개변수로 선언된 변수
해당 변수가 선언된 메서드 내에서만 사용 가능
변수는 자신이 속한 블록을 벗어나면 사용 불가.
데이터 타입의 변환 = 형변환
변수의 타입을 다른 타입으로 변경하고자 할 때 형변환 연산자를 사용하여 변환 함
Promotion(묵시적 형변환) : 작은 데이터 타입을 큰 데이터 타입으로 변환
-> 데이터 손실의 우려가 없어 자동 캐스팅
int형의 데이터를 double형 변수에 할당하면 자동으로 전환되어 할당됨
Demotion(명시적 형변환) : 큰 데이터 타입을 작은 데이터 타입으로 변환
-> 데이터 손실의 우려로 명시적 캐스팅
double형의 데이터를 int형 변수에 할당하기 위해선 (int)라는 형변환 연산자를 사용하여 할당해야 함
package practice;
public class Main {
public static void main(String args[]) {
double A = 75;
System.out.println("int -> double : " + A); // Promotion
int B = (int)75.072;
System.out.println("double -> int: "+ B); // Demotion
int C = 'A';
System.out.println("char -> int : " + C); // Promotion
char D = (char)65;
System.out.println("int -> char : " + D); // Demotion
}
}
실행 결과
int -> double : 75.0
double -> int: 75
char -> int : 65
int -> char : A
띄어쓰기 열심히 해서 가독성 좋게 해놓고 게시하면 다 증발하고 가독성 개똥망된다.
마크다운 망해라
기초적인 내용이라 전반적으로 쉽게쉽게 배우는 중이지만
방심했다가 뒤통수 맞기 딱 좋을 것 같다.
망할
[참고] : SWExpertAcademy
'Etc.. > SWExpertAcademy' 카테고리의 다른 글
[Java Programming] 객체지향 핵심 원리(1) (0) | 2021.07.12 |
---|---|
[Java Programming] 자바언어의 구조와 기본문법 (4) (0) | 2021.07.11 |
[Java Programming] 자바언어의 구조와 기본문법 (3) (0) | 2021.07.05 |
[Java Programming] 자바언어의 구조와 기본문법 (1) (0) | 2021.07.05 |
[Computational Thinking] 프로그래밍과 논리/수학 (0) | 2021.07.03 |