2025-소프트웨어과 2학년/JAVA(자바)

JAVA(자바)-01

simless786-it 2025. 3. 14. 11:52

[객체지향 언어의 특징]

  • 객체지향 언어는 캡슐화, 다형성, 상속성의 특성을 갖는다.
  • 캡슐화(Encapsulation): 코드 구현부를 프로그램 외부에 보이지 않게 가능. 변수나 메소드의 접근권한을 설정할 수 있게 하여 변수나 메소드에 대해 권한이 없는 사용을 방지.
  • 다형성(polymorphism): 하나의 인터페이스 방식으로 다양한 처리 결과를 만들 수 있게 함.
  • 상속성(Inheritance): 한 요소의 속성을 다른 요소가 물려받아 중복 선언을 하지 않아도 작동하게 함.

📌 어트리뷰트(Attribute)란?

자바에서 "어트리뷰트(Attribute)"는 보통 클래스의 속성(멤버 변수, 필드) 을 의미합니다.

즉, 객체가 가지는 데이터(상태)를 저장하는 변수라고 생각하면 됩니다.


1. 어트리뷰트(속성)의 기본 개념

자바에서 클래스의 속성을 정의할 때 필드(Field) 또는 멤버 변수(Member Variable) 라고도 부릅니다.

java
복사편집
// 클래스 정의
class Person {
    // 어트리뷰트 (속성)
    String name;  // 이름
    int age;      // 나이
}

위 Person 클래스에는 name과 age라는 두 개의 어트리뷰트(속성) 이 있습니다.


1. 콘솔(Console)이란?

콘솔(Console)은 프로그램과 사용자 간의 상호작용이 이루어지는 창입니다.

자바에서는 표준 입력/출력(System.in / System.out) 을 통해 콘솔과 데이터를 주고받습니다.

🔹 (1) 콘솔 출력 (System.out.println)

java
복사편집
System.out.println("Hello, Java!"); // 줄 바꿈 포함
System.out.print("Hello, "); // 줄 바꿈 없음
System.out.print("World!");

📌 실행 결과

복사편집
Hello, Java!
Hello, World!

  • System.out.println() → 문자열을 출력하고 줄 바꿈
  • System.out.print() → 문자열을 출력하지만 줄 바꿈 없음

2. 메소드(Method)란?

메소드(Method)는 특정 작업을 수행하는 코드 블록입니다.

재사용 가능하며, 코드를 깔끔하게 정리할 수 있습니다.

🔹 (1) 메소드 기본 문법

java
복사편집
반환형 메소드이름(매개변수) {
    // 실행할 코드
    return 값; // (반환형이 void이면 return 생략 가능)
}


1. 캡슐화(Encapsulation)란?

캡슐화(Encapsulation) 는 객체의 데이터(변수)와 메서드를 하나로 묶는 개념입니다.

  • 외부에서 직접 접근하지 못하게 하고,
  • 필요한 메서드를 통해서만 접근하도록 제어하는 방식입니다.
  • 데이터 보호와 유지보수성을 높이는 역할을 합니다.

2. 정보 은닉(Information Hiding)이란?

정보 은닉(Information Hiding) 은 객체의 내부 데이터를 외부에서 직접 접근하지 못하도록 보호하는 개념입니다.

  • private 접근 제한자를 사용하여 데이터 숨김
  • getter와 setter로 데이터 접근 허용
  • 데이터 무결성(유효한 값만 유지) 보장

📌 예제 (정보 은닉 적용)

java
복사편집
class BankAccount {
    private int balance = 0; // 잔액 (외부에서 직접 변경 불가)

    // Getter: 잔액 확인
    public int getBalance() {
        return balance;
    }

    // Setter: 입금 기능
    public void deposit(int amount) {
        if (amount > 0) {
            balance += amount;
        }
    }
}

public class Main {
    public static void main(String[] args) {
        BankAccount myAccount = new BankAccount();

        myAccount.deposit(1000);  // 올바른 입금
        System.out.println("잔액: " + myAccount.getBalance());
    }
}

📌 실행 결과

makefile
복사편집
잔액: 1000

👉 balance 변수를 private으로 숨겨서 직접 수정 불가능

👉 deposit() 메서드만 사용해서 올바른 값만 저장 가능

3. 변수(Variable)란?

변수(Variable)값을 저장하는 메모리 공간.

자바에서는 자료형을 명시해야 하며, 기본적으로 3가지 종류의 변수가 있습니다.

(1) 지역 변수 (Local Variable)

  • 특정 메서드나 블록 안에서 선언되고,
  • 해당 블록을 벗어나면 사라지는 변수

(2) 인스턴스 변수 (Instance Variable)

  • 클래스 안에서 선언되고,
  • 각 객체마다 개별적으로 존재하는 변수

(3) 클래스 변수 (Class Variable, static 변수)

  • static 키워드를 사용하여 모든 객체가 공유하는 변수
  • 클래스에 속하며, 한 번만 메모리에 저장됨

🖥️ CUI (Character User Interface)란?


1. CUI란?

CUI (Character User Interface, 문자 기반 사용자 인터페이스)텍스트(문자)만을 이용하여 사용자와 상호작용하는 방식을 의미합니다.

  • CLI (Command Line Interface) 와 같은 개념
  • 키보드로 명령어 입력 → 시스템이 처리 → 결과 출력
  • GUI보다 가볍고 빠름
  • 주로 서버 관리, 프로그래밍, 자동화에 사용됨

📌 즉, CUI는 "명령어 기반 인터페이스"로, 그래픽 없이 문자만으로 조작하는 방식입니다.