Java Syntax
Java Syntax: 자바 문법 기초 가이드
Java는 객체 지향 프로그래밍(OOP) 언어로, 엄격한 구문 규칙을 가지고 있습니다. Java 프로그램은 클래스로
구성되며, 프로그램의 **진입점(entry point)**은 항상 main
메소드입니다. 이 가이드는 Java의 기본 구문 및 문법을 소개하고, Java 프로그램을 작성하는 방법을
설명합니다.
1. 기본 Java 프로그램 구조
Java 프로그램은 다음과 같은 기본 구조로 이루어집니다:
public class ClassName {
public static void main(String[] args) {
// 프로그램 실행 시작점
System.out.println("Hello, World!");
}
}
코드 설명:
public class ClassName
: 모든 Java 코드는 클래스 내부에 있어야 하며, 클래스 이름은 파일 이름과 같아야 합니다.public static void main(String[] args)
: Java 애플리케이션의 **진입점(entry point)**입니다. 프로그램이 실행될 때main
메소드가 가장 먼저 호출됩니다.System.out.println()
: 표준 출력장치(콘솔)에 메시지를 출력하는 명령어입니다.
2. Java 기본 문법
2.1. 주석(Comment)
Java에서 주석은 코드에 대한 설명을 추가할 때 사용되며, 프로그램 실행에는 영향을 미치지 않습니다.
- 단일 행 주석:
//
- 여러 행 주석:
/* ... */
// 이 코드는 Hello, World!를 출력합니다.
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!"); // 단일 행 주석
/* 여러 줄 주석
여기에 작성됩니다. */
}
}
3. 변수와 데이터 타입
Java에서는 변수를 사용하여 데이터를 저장하며, 변수를 선언할 때 데이터 타입을 명시해야 합니다.
3.1. 변수 선언 및 초기화
변수는 다음과 같은 형태로 선언하고 초기화합니다:
int number = 10; // 정수형 변수 선언
String name = "John"; // 문자열 변수 선언
3.2. 기본 데이터 타입 (Primitive Data Types)
Java에는 8가지의 기본 데이터 타입이 있습니다.
int
: 정수 (예:int age = 25;
)double
: 소수점을 포함한 실수 (예:double price = 19.99;
)char
: 단일 문자 (예:char letter = 'A';
)boolean
: 논리값 (참/거짓) (예:boolean isActive = true;
)float
: 실수 (단일 정밀도) (예:float temperature = 36.6f;
)long
: 정수 (큰 범위) (예:long population = 7800000000L;
)byte
: 정수 (1바이트) (예:byte data = 100;
)short
: 정수 (2바이트) (예:short value = 1000;
)
3.3. 참조 데이터 타입 (Reference Data Types)
참조 데이터 타입은 객체 또는 배열과 같은 복합적인 데이터를 나타냅니다. Java에서 문자열은 String
클래스로 처리됩니다.
String greeting = "Hello, Java!";
4. 연산자
Java는 다양한 연산자를 지원하며, 변수와 값에 대해 산술 연산, 비교 연산, 논리 연산 등을 수행할 수 있습니다.
4.1. 산술 연산자
+
: 더하기- ``: 빼기
- ``: 곱하기
/
: 나누기%
: 나머지
int a = 10;
int b = 3;
int sum = a + b; // 13
int remainder = a % b; // 1
4.2. 비교 연산자
==
: 같음!=
: 같지 않음>
: 큼<
: 작음>=
: 크거나 같음<=
: 작거나 같음
boolean result = (a > b); // true
4.3. 논리 연산자
&&
: 논리 AND||
: 논리 OR!
: 논리 NOT
boolean isTrue = (a > 0 && b > 0); // true
boolean isFalse = !(a > b); // false
5. 조건문
조건문은 특정 조건에 따라 코드의 실행 흐름을 제어하는 데 사용됩니다.
5.1. if-else
문
int score = 85;
if (score >= 90) {
System.out.println("A grade");
} else if (score >= 80) {
System.out.println("B grade");
} else {
System.out.println("C grade");
}
5.2. switch
문
switch
문은 값에 따라 여러 가지 경우를 처리할 수 있습니다.
int day = 3;
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
default:
System.out.println("Invalid day");
}
6. 반복문
반복문을 사용하면 코드를 여러 번 반복해서 실행할 수 있습니다.
6.1. for
문
for (int i = 0; i < 5; i++) {
System.out.println("i = " + i);
}
6.2. while
문
int i = 0;
while (i < 5) {
System.out.println("i = " + i);
i++;
}
6.3. do-while
문
do-while
은 조건이 참이든 거짓이든 최소 한 번은 실행됩니다.
int i = 0;
do {
System.out.println("i = " + i);
i++;
} while (i < 5);
7. 함수 (메소드)
Java에서는 함수를 메소드라고 부르며, 클래스 내부에 정의됩니다.
7.1. 메소드 선언
메소드는 특정 작업을 수행하는 코드를 묶은 것입니다.
public class MathOperations {
// 두 수의 합을 반환하는 메소드
public int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
MathOperations math = new MathOperations();
int result = math.add(5, 3);
System.out.println("Result: " + result); // 출력: Result: 8
}
}
7.2. 메소드 오버로딩
Java에서는 같은 이름의 메소드를 매개변수의 개수나 타입에 따라 여러 번 정의할 수 있습니다.
public class MathOperations {
// 두 개의 정수를 더함
public int add(int a, int b) {
return a + b;
}
// 세 개의 정수를 더함
public int add(int a, int b, int c) {
return a + b + c;
}
}
8. 클래스와 객체
Java는 객체 지향 프로그래밍(OOP) 언어로, 클래스와 객체 개념이 매우 중요합니다. 클래스는 객체를 생성하기 위한 **청사진(blueprint)**입니다.
8.1. 클래스 정의 및 객체 생성
public class Car {
String model;
int year;
// 메소드
public void drive() {
System.out.println("Driving " + model);
}
public static void main(String[] args) {
// 객체 생성
Car myCar = new Car();
myCar.model = "Tesla";
myCar.year = 2023;
myCar.drive(); // 출력: Driving Tesla
}
}
8.2. 생성자(Constructor)
생성자는 객체가 생성될 때 호출되며, 객체를 초기화하는 역할을 합니다.
public class Car {
String model;
int year;
// 생성자
public Car(String model, int year) {
this.model = model;
this.year = year;
}
public void drive() {
System.out.println("Driving " + model
);
}
public static void main(String[] args) {
Car myCar = new Car("Tesla", 2023);
myCar.drive(); // 출력: Driving Tesla
}
}
9. 상속
Java에서 상속을 통해 기존 클래스의 기능을 확장하여 새로운 클래스를 만들 수 있습니다.
// 부모 클래스
class Animal {
public void eat() {
System.out.println("Animal is eating");
}
}
// 자식 클래스
class Dog extends Animal {
public void bark() {
System.out.println("Dog is barking");
}
}
public class Main {
public static void main(String[] args) {
Dog myDog = new Dog();
myDog.eat(); // 부모 클래스의 메소드 호출
myDog.bark(); // 자식 클래스의 메소드 호출
}
}
요약
Java는 클래스, 객체, 조건문, 반복문 등 다양한 프로그래밍 구조를 지원하는 객체 지향 프로그래밍 언어입니다. 이 가이드는 Java의 기본 구문 및 문법을 설명하며, Java에서 프로그램을 작성하는 방법을 이해할 수 있도록 돕습니다. Java 문법을 익히면 다양한 애플리케이션 개발에 활용할 수 있습니다.