[객체지향 언어의 특징]
- 객체지향 언어는 캡슐화, 다형성, 상속성의 특성을 갖는다.
- 캡슐화(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는 "명령어 기반 인터페이스"로, 그래픽 없이 문자만으로 조작하는 방식입니다.