목차
[TIL] Day 08 — Java 접근 제어자와 캡슐화, static
날짜: 2025-10-29
기술 스택: Java OOP 캡슐화 static getter/setter
부트캠프: 풀스택 개발자 부트캠프 2주차
접근 제어자 (Access Modifier)
| 제어자 | 클래스 내부 | 같은 패키지 | 자식 클래스 | 외부 |
|---|---|---|---|---|
private |
✅ | ❌ | ❌ | ❌ |
default |
✅ | ✅ | ❌ | ❌ |
protected |
✅ | ✅ | ✅ | ❌ |
public |
✅ | ✅ | ✅ | ✅ |
암기법: 프디프퍼 (private → default → protected → public, 범위 순서)
캡슐화 + getter/setter
public class Person {
private String name; // 외부 직접 접근 차단
private int age;
// getter
public String getName() { return name; }
public int getAge() { return age; }
// setter
public void setName(String name) {
this.name = name; // this.로 필드와 매개변수 구분
}
public void setAge(int age) {
if (age >= 0) this.age = age; // 유효성 검사 로직 삽입 가능
}
}
// 사용
Person p = new Person();
p.setName("홍길동");
System.out.println(p.getName());
- Eclipse: 소스 우클릭 → Source → Generate Getters and Setters 자동 생성
생성자 (Constructor)
public class Car {
String color;
int speed;
// 기본 생성자 (명시적 작성 권장)
Car() {}
// 오버로딩 생성자
Car(String color) { this.color = color; }
Car(String color, int speed) {
this.color = color;
this.speed = speed;
}
}
- 생성자 없으면 컴파일러가 자동으로 기본 생성자 생성
- 다른 생성자 작성 시 기본 생성자 자동 생성 안 됨 → 두 개 다 직접 작성
static 멤버
public class MathUtil {
static final double PI = 3.14159; // static + final → 상수
static int add(int a, int b) { return a + b; } // 객체 없이 호출
int subtract(int a, int b) { return a - b; } // 객체 생성 후 호출
}
// 사용
System.out.println(MathUtil.PI); // 클래스명.static멤버
System.out.println(MathUtil.add(3, 4)); // 객체 생성 불필요
MathUtil m = new MathUtil();
System.out.println(m.subtract(5, 2)); // 객체 필요
static 상수 선언
static final double PI = 3.14159; // 대문자 + 언더바 스타일
static final int MAX_SIZE = 100;
메인 메서드 구조
public static void main(String[] args)
// ^ ^ ^ ^ ^
// 접근제한 정적 반환없음 메서드명 인자(명령행 인자)
트러블슈팅
this.a = a vs a = a
private필드와 setter 매개변수 이름이 같으면this필수this없으면 매개변수에 매개변수를 대입하는 무의미한 코드가 됨
생성자와 일반 메서드 구분
- 생성자: 클래스명과 동일, 반환형 없음 (
void도 제외) - 일반 메서드: 반환형 지정 필수
더 알아볼 것
- 싱글턴 패턴 (Singleton Pattern) 구현
- 가변 길이 매개변수 (
...varargs) 활용 - CSS
position: relativevsabsolutevsfixed실습 - CSS
input[type="checkbox"]:checked ~ #view패턴 활용 사례 - 상속(extends) 기본 문법과
super키워드
'⏳ Time Log > 1. One Day (Daily · TIL)' 카테고리의 다른 글
| [TIL] Day 10 — Java 상속 심화 + 싱글턴 패턴 (0) | 2026.02.18 |
|---|---|
| [TIL] Day 09 — Java 생성자/오버라이딩/다형성, CSS float 원리 (0) | 2026.02.18 |
| [TIL] Day 07 — Java 클래스 기초 및 CSS 박스모델/효과 (1) | 2026.02.18 |
| [TIL] Day 06 — Java 배열/참조타입 및 CSS 선택자 (0) | 2026.02.18 |