[내일배움캠프] Java 기초 문법 2일차.

김재진·2025년 12월 4일

내일배움캠프

목록 보기
10/70

1. 클래스와 객체

  • 클래스 : 객체를 만들기 위한 설계도 (첫 글자는 대문자)
  • 객체 : 실제로 존재하는 것 (사물, 논리, 개념, 무형의 것들도 객체가 될 수 있다.)

2. 클래스

2-1. 클래스 구조

  • 속성 : 특징을 작성하는 곳으로 객체를 생성해야 접근 가능하다, 프로퍼티, 필드 라고도 한다. (예시 : 사람의 나이, 이름 등)
  • 생성자 : 객체를 어떻게 만들지 정의해 놓는 것, 생성자가 있어야 클래스를 객체화 할 수 있다. (클래스 생성 시 기본 생성자가 자동생성됨)
  • 기능 : 지난 시간에 배운 메서드로 표현, 기능을 구현한다.

2-2. 게터, 세터

  • 게터 : 클래스의 속성을 가져올 때 사용되는 기능
String getName() {
		return this.name;
}

int getAge() {
		return this.age;
}

String getAddress() {
		return this.address;
}
String name = person.getName();
int age = person.getAge();
String address = person.getAddress();
  • 세터 :객체의 속성을 외부에서 설정할 수 있게 해주는 기능
void getName(String name) {
		this.name = name;
}

void getAge(int age) {
		this.age = age;
}

void setAddress(String address) {
		this.address = address;
}
public class Main {

		public static void main(String[] args) {
				Person personA = new Person("gygim", 20);
				Person personB = new Person("Steve", 15);
				
				personA.setAddress("서울"); // ✅ personA 의 주소 설정
				personB.setAddress("미국"); // ✅ personA 의 주소 설정
				
		}
}

3. 래퍼클래스

  • 기본자료형을 객체로 감싸는 클래스
  • 기본형은 객체처럼 속성, 기능을 가질 수 없으나, 객체는 기능을 제공할 수 있다.
  • 기본형을 감싼 객체를 만들어 기능을 제공하면 편리하게 데이터처리를 할 수 있다.
  • 내부적으로 데이터를 감싸고 있어 연산시에는 불리하다.

3-1. 오토박싱

  • 기본형에서 래퍼형으로 변환하는 과정
Integer num3 = 10; // ✅ 오토박싱

// ✅ 내부적 자동 처리(래퍼형 <- 기본형)
Integer num = Integer.valueOf(10);

3-2. 오토언박싱

  • 래퍼형에서 기본형으로 변환하는 과정
Integer num3 = 10; 
int num = num3;   // ✅ 오토 언박싱

// ✅ 내부적 자동처리(기본형 <- 래퍼형)
int a = num.intValue();

4. static, final

4-1. static 키워드

  • 모든 객체가 같이 사용하는 변수나 메서드를 만들 때 사용
  • 한 번만 생성되며 메서드 영역에 저장됨
  • 객체를 만들지 않아도 클래스명.변수명 으로 접근 가능함
  • static 은 공유가 필요한 상황에서만 사용해야함
  • 프로그램 종료시 까지 유지되므로 남용하면 메모리 낭비가 생김

4-2. final 키워드

  • 변수에 final을 붙이면 변경이 불가능 하게 만든다.
  • final로 선언된 클래스는 상속이 불가능 하다.
  • final로 선언된 메서드는 수정 할 수 없다.

4-3. 상수와 불변객체

  • 상수는 변하지 않고 항상 일정한 값을 갖는 수로 java에서 대문자로 표현한다.
  • 상수는 프로그램 실행 중 절대 변경되어서는 안되어서 static final 키워드를 사용해 선언한다.
  • 불변객체는 내부 상태를 변경할 수 없는 객체로 '속성(property, field)' 에 활용한다.
  • 불변객체는 세터 없이 설계하며 변경이 필요할 경우 새로운 객체를 만들어야 한다.

5. 마무리

  • 클래스와 객체에 대한 설명을 들어보았다. 처음 배우는 입장에서 여러가지 개념을 한번에 집어넣으려고 하니 서로 섞여서 내용이 오히려 더 헷갈리게 되어가고 있는거 같아 다시 한번 차근차근 개념정리를 해야할 필요가 있는거 같다. 특히 불변객체에 대해서 공부할 때 새로운 객체를 만드는 것이 왜 변경한다고 하는지 아직 이해가 잘 되지 않아 여러 질문이 많이 생기는 하루였다.
profile
개발공부 처음해보는 사람

0개의 댓글