캡슐화

변수와 메서드를 하나의 클래스 안에 묶는 것.

정보 은닉

private 같은 접근제어자로 내부 데이터를 숨기고, 필요한 기능만 공개하는 것.

추상화

복잡한 내부 과정은 숨기고, 꼭 필요한 기능만 보여주는 것.

상속성

부모 클래스의 변수와 메서드를 자식 클래스가 물려받아 사용하는 것.

다형성

같은 이름의 메서드나 객체가 상황에 따라 다르게 동작하는 것.

예: 오버로딩, 오버라이딩.

클래스 이름 규칙 (Java)

  • 사용 가능: 영문자(A–Z, a–z), 숫자(0–9), 언더바(_)
  • 사용 불가: 공백, 특수문자(예: !, @, #, -, . 등)
  • 숫자는 맨 앞에 올 수 없음
  • 첫 글자는 대문자로 작성(PascalCase 권장)
  • 예약어는 사용할 수 없음
    • 예: class, public, static, void, int, if, for, while, return, new 등

비트 연산자 (Java)

  • & (AND): 두 비트가 모두 1이면 1
  • | (OR): 둘 중 하나라도 1이면 1
  • ^ (XOR): 두 비트가 서로 다르면 1
  • ~ (NOT): 비트 반전(0↔1)
  • << (왼쪽 시프트): 비트를 왼쪽으로 이동, 일반적으로
  • >> (오른쪽 시프트): 비트를 오른쪽으로 이동(부호 유지), 일반적으로

간단 예시

  • 5 & 3 → 0101 & 0011 = 0001 → 1
  • 5 | 3 → 0101 | 0011 = 0111 → 7
  • 5 ^ 3 → 0101 ^ 0011 = 0110 → 6
  • ~5 → ...1010 (2의 보수 표현이라 결과는 음수)