1.1. 프로그램언어 자바(Java)의 개념

프로그램언어 자바(Java)의 정의

프로그램언어 자바(Java)는 객체지향 프로그래밍 언어로, 1995년 선 마이크로시스템즈(현 오라클)에서 개발되었습니다. 자바는 다양한 플랫폼에서 동작할 수 있는 특징을 가지고 있어서 “쓰고 한 번만 실행하면 어디서든 실행된다”라는 슬로건으로 유명합니다. 자바는 가상머신(Java Virtual Machine, JVM) 위에서 동작하며, 이를 통해 플랫폼에 독립적인 실행 환경을 제공합니다.

자바는 간결하고 쉬운 문법을 가지고 있어서 학습하기 쉽고, 다양한 응용프로그램을 개발할 수 있습니다. 또한 자바는 안정성과 보안성이 높아서 기업 환경에서도 널리 사용되고 있습니다. 객체지향 프로그래밍의 특징을 잘 지원하며, 다형성, 캡슐화, 상속 등의 개념을 쉽게 구현할 수 있습니다.

자바의 예제 코드를 통해 간단한 프로그램을 작성해보겠습니다. 아래의 코드는 “Hello, World!”를 출력하는 간단한 자바 프로그램입니다.


public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

위의 코드에서는 ‘HelloWorld’라는 클래스를 정의하고, ‘main’ 메서드에서 “Hello, World!”를 출력하는 코드를 작성했습니다. ‘public’은 접근 제어자로, 해당 클래스 또는 메서드가 어디서든 접근 가능함을 의미합니다. ‘static’은 정적 메서드를 선언할 때 사용되며, ‘void’는 반환값이 없음을 의미합니다. ‘System.out.println()’은 콘솔에 출력하는 메서드입니다.

프로그램언어 자바(Java)의 기본 구조

자바(Java)는 객체지향 프로그래밍 언어로, 다양한 플랫폼에서 사용되는 인기 있는 언어입니다. 자바 프로그램은 클래스(class)라는 단위로 구성되며, 각 클래스는 필드(field)와 메소드(method)로 구성됩니다. 자바의 기본 구조를 이해하기 위해 다음과 같은 내용을 살펴보겠습니다.

자바 프로그램의 기본 구조

자바 프로그램은 일반적으로 다음과 같은 구조를 가지고 있습니다.

  • 패키지(package) 선언
  • 임포트(import) 선언
  • 클래스(class) 선언
  • 메인 메소드(main method)

이 중에서 가장 중요한 부분은 클래스(class) 선언과 메인 메소드(main method)입니다. 클래스는 자바 프로그램의 기본 단위이며, 메소드는 클래스 내부에 포함된 기능을 정의하는 데 사용됩니다.

예제 코드


package com.example; // 패키지 선언

import java.util.Scanner; // Scanner 클래스 임포트

public class Main { // Main 클래스 선언

    public static void main(String[] args) { // 메인 메소드
        System.out.println("Hello, Java!"); // 콘솔에 메시지 출력
    }
}

위 예제 코드에서는 “Hello, Java!”라는 메시지를 콘솔에 출력하는 간단한 자바 프로그램을 보여줍니다. 프로그램은 Main 클래스 내에 main 메소드를 포함하고 있으며, 메인 메소드는 프로그램이 실행될 때 가장 먼저 호출되는 부분입니다.

이렇게 자바 프로그램은 클래스와 메소드의 조합으로 구성되며, 메인 메소드를 통해 프로그램의 실행이 시작됩니다. 자바의 기본 구조를 이해하고 이를 활용하여 다양한 프로그램을 개발할 수 있습니다.

프로그램언어 자바(Java) 주요 문법

자바(Java)는 객체지향 프로그래밍 언어로, 다양한 플랫폼에서 사용되는 인기 있는 언어입니다. 자바의 주요 문법에 대해 알아보겠습니다.

1. 변수(Variables)

변수는 데이터를 저장하는 공간으로, 자료형과 변수명을 지정하여 사용합니다. 변수를 선언할 때는 해당 자료형을 명시해야 합니다.


int number = 10; // 정수형 변수 선언과 초기화
String name = "Java"; // 문자열 변수 선언과 초기화

2. 조건문(Conditional Statements)

조건문은 주어진 조건에 따라 프로그램의 흐름을 제어하는데 사용됩니다. 가장 많이 사용되는 조건문은 if문과 switch문입니다.


int score = 85;

if (score >= 90) {
    System.out.println("A학점");
} else if (score >= 80) {
    System.out.println("B학점");
} else {
    System.out.println("C학점");
}

3. 반복문(Loops)

반복문은 특정 작업을 반복적으로 수행할 때 사용됩니다. 자바에서는 for문, while문, do-while문이 주로 활용됩니다.


for (int i = 1; i <= 5; i++) {
    System.out.println("반복문 실행: " + i);
}

4. 메서드(Methods)

메서드는 코드의 재사용성을 높이기 위해 사용되며, 특정 작업을 수행하는 코드 블록입니다. 메서드는 반환값과 매개변수를 가질 수 있습니다.


public int add(int a, int b) {
    return a + b;
}

int result = add(3, 5);
System.out.println("결과: " + result);

5. 클래스와 객체(Classes and Objects)

자바는 객체지향 프로그래밍 언어이기 때문에 클래스와 객체 개념이 중요합니다. 클래스는 객체를 생성하기 위한 틀이며, 객체는 클래스의 인스턴스입니다.


class Car {
    String color;

    public void drive() {
        System.out.println("주행합니다.");
    }
}

Car myCar = new Car();
myCar.color = "Red";
myCar.drive();

6. 배열(Arrays)

배열은 동일한 자료형의 데이터를 순차적으로 저장하는 자료구조입니다. 배열을 사용하여 여러 데이터를 효율적으로 관리할 수 있습니다.


int[] numbers = {1, 2, 3, 4, 5};

for (int i = 0; i < numbers.length; i++) {
    System.out.println("배열 요소: " + numbers[i]);
}

7. 예외 처리(Exception Handling)

예외 처리는 프로그램 실행 중 발생할 수 있는 예외 상황에 대비하여 처리하는 기능을 제공합니다. try-catch 블록을 사용하여 예외를 처리할 수 있습니다.


try {
    int result = 10 / 0;
} catch (ArithmeticException e) {
    System.out.println("0으로 나눌 수 없습니다.");
}

8. 패키지(Packages)

패키지는 관련된 클래스들을 그룹화하여 관리하는 기능을 제공합니다. 패키지를 사용하여 클래스의 이름 충돌을 방지하고 코드를 구조화할 수 있습니다.


package com.example;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("이름을 입력하세요: ");
        String name = scanner.nextLine();
        System.out.println("입력한 이름: " + name);
    }
}

9. 상속(Inheritance)

상속은 기존 클래스의 필드와 메서드를 다른 클래스에서 재사용할 수 있도록 해주는 개념입니다. 부모 클래스의 특성을 자식 클래스가 물려받을 수 있습니다.


class Animal {
    public void sound() {
        System.out.println("동물 소리를 내다.");
    }
}

class Dog extends Animal {
    public void sound() {
        System.out.println("멍멍");
    }
}

Dog myDog = new Dog();
myDog.sound();

10. 인터페이스(Interfaces)

인터페이스는 클래스가 구현해야 하는 메서드 규약을 정의하는 역할을 합니다. 다중 상속을 지원하고, 클래스 간의 결합도를 낮출 수 있습니다.


interface Shape {
    double getArea();
    double getPerimeter();
}

class Circle implements Shape {
    private double radius;

    public double getArea() {
        return Math.PI * radius * radius;
    }

    public double getPerimeter() {
        return 2 * Math.PI * radius;
    }
}

프로그램언어 자바(Java)의 데이터 타입

자바(Java) 프로그래밍 언어는 다양한 데이터 타입을 제공하여 다양한 종류의 데이터를 저장하고 처리할 수 있습니다. 데이터 타입은 해당 데이터의 종류와 크기를 정의하며, 변수를 선언할 때 사용됩니다. 주요한 자바 데이터 타입은 기본 데이터 타입과 참조 데이터 타입으로 나눌 수 있습니다.

기본 데이터 타입

기본 데이터 타입은 정수, 부동 소수점 숫자, 문자, 논리값을 저장하는 데 사용됩니다. 자바의 기본 데이터 타입은 다음과 같습니다:

  • 정수 타입: byte, short, int, long
  • 부동 소수점 타입: float, double
  • 문자 타입: char
  • 논리 타입: boolean

예제 코드:


public class Main {
    public static void main(String[] args) {
        int number = 10;
        double decimal = 3.14;
        char letter = 'A';
        boolean flag = true;
        
        System.out.println("Number: " + number);
        System.out.println("Decimal: " + decimal);
        System.out.println("Letter: " + letter);
        System.out.println("Flag: " + flag);
    }
}

위 예제 코드에서는 각각의 기본 데이터 타입을 변수에 할당하고 출력하는 방법을 보여줍니다. 정수, 부동 소수점, 문자, 논리값을 변수에 저장하고 화면에 출력하는 과정을 확인할 수 있습니다.

참조 데이터 타입

참조 데이터 타입은 객체(Object)를 다룰 때 사용됩니다. 자바에서는 클래스, 인터페이스, 배열 등이 참조 데이터 타입에 해당됩니다. 변수에는 객체의 주소가 저장되며, 객체 자체는 힙(heap) 메모리에 저장됩니다.

예제 코드:


public class Person {
    String name;
    int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public void displayInfo() {
        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
    }
}

public class Main {
    public static void main(String[] args) {
        Person person1 = new Person("Alice", 25);
        person1.displayInfo();
        
        Person person2 = new Person("Bob", 30);
        person2.displayInfo();
    }
}

위 예제 코드에서는 Person 클래스를 정의하고 해당 클래스를 사용하여 객체를 생성하는 방법을 보여줍니다. Person 객체를 생성하고 이름과 나이를 설정한 후 정보를 출력하는 과정을 확인할 수 있습니다.

프로그램언어 자바(Java)에서의 객체지향 프로그래밍

자바(Java)는 객체지향 프로그래밍 언어로, 객체지향 프로그래밍은 현실 세계의 사물을 모델링하여 소프트웨어를 개발하는 방법론입니다. 객체지향 프로그래밍은 클래스(class)와 객체(object)를 기반으로 합니다. 클래스는 객체를 만들기 위한 틀이며, 객체는 클래스의 인스턴스(instance)입니다.

객체지향 프로그래밍의 주요 특징은 캡슐화(encapsulation), 상속(inheritance), 다형성(polymorphism)입니다. 캡슐화는 데이터와 메서드를 하나로 묶어 외부에서의 접근을 제어하는 것을 말하며, 정보 은닉을 통해 객체의 내부를 보호합니다. 상속은 기존 클래스를 확장하여 새로운 클래스를 만드는 것을 말하며, 코드의 재사용성을 높입니다. 다형성은 같은 이름의 메서드가 다른 기능을 수행할 수 있도록 하는 것을 말하며, 코드의 유연성을 높입니다.

자바에서 클래스는 멤버 변수와 메서드로 구성되며, 객체를 생성하기 위해 new 키워드를 사용합니다. 아래는 간단한 자바 예제코드입니다.


class Person {
    String name;
    
    public Person(String name) {
        this.name = name;
    }
    
    public void greet() {
        System.out.println("Hello, my name is " + name);
    }
}

public class Main {
    public static void main(String[] args) {
        Person person1 = new Person("Alice");
        Person person2 = new Person("Bob");
        
        person1.greet();
        person2.greet();
    }
}

위 예제에서 Person 클래스는 이름을 저장하는 멤버 변수인 name과 인사말을 출력하는 greet 메서드를 가지고 있습니다. Main 클래스에서 Person 객체를 생성하고 각 객체의 greet 메서드를 호출하여 각자의 이름을 출력합니다.

객체지향 프로그래밍은 코드의 가독성과 유지보수성을 높이며, 현실 세계의 개념을 쉽게 모델링할 수 있는 장점이 있습니다. 자바는 객체지향 프로그래밍을 지원하는 강력한 언어이며, 다양한 라이브러리와 프레임워크를 통해 객체지향적인 소프트웨어 개발을 용이하게 합니다.

Leave a Comment