1️⃣ 클래스란?
: 객체를 만들 때 필요한 청사진이다.
- Java
에서 클래스는 객체를 만들 때 필요한 청사진(설계도) 이다.
- 클래스의 첫 글자가 대문자이다.
2️⃣ 객체
- 실제로 존재하는 것이다.
- 우리가 주변에서 볼 수 있는 컴퓨터, 계산기, 자동차 같은 사물들이 객체
- 추가로 어떤 개념이나 논리 같은 것들도 객체가 될 수 있음
- 예를 들어 덧셈, 뺄셈 등 눈에 보이지 않은 것들도 무형의 객체가 될 수 있음
- 클래스가 준비되어 있다면 클래스를 기준으로 여러 객체들을 만들어 낼수 있음
- Person.class
사람이라는 객체를 만들면서 확인해보자.
- 클래스는 객체를 만들기 위한 설계도이다.
Person
클래스는 사람 객체를 만들기 위한 설계도이다.- 객체를 만들때
new
라는 키워드를 사용한다. - 객체를 만드는 과정을
인스턴스화
라고 표현한다. - 인스턴스화가 되면 Java 메모리 상에 객체가 만들어진다.
public class Person() {
...
}
public class Main {
public static void main(String[] args) {
Person personA = new Person(); // ✅ 첫번째 객체 생성
Person personB = new Person(); // ✅ 두번째 객체 생성
}
}
3️⃣ 클래스 구조(속성, 생성자, 기능)
- 클래스 구조는 1. 속성, 2. 생성자. 3. 기능 부분으로 나누어집니다.
class 클래스 {
// 1. 속성
// 2. 생성자
// 3. 기능
}
1. 속성 Property, field
- 객체는 속성(특징)을 작성하는 곳
- 객체를 생성해야 속성에 접근 가능
- 이 속성들은 변수로 표현
- 프로퍼티(property), 필드(field)라고도 함.
- 사람의 속성을 예로 들면 나이, 이름, 주소 등이 해당
2. 생성자
- 객체를 만들 때 사용합니다.
- 객체를 어떻게 만들지 정의해 놓는 것입니다. - 조립설명서
- 생성자가 없으면 클래스를 객체화 시킬 수 없습니다.(조립불가)
1)\ 기본 생성자
- 클래스를 생성하면 기본 생성자는 자동으로 추가가 됩니다.
- 그렇기 때문에 우리는 클래스를 객체화 시킬 수 있었습니다.
- 아래의 코드가 숨겨져 있는 것이다.
Class() {}
- 하지만, 생성자를 만들어 주게될 시, 기본 생성자(위의코드) 가 사라지게 된다.
2)\ 생성자의 특징
- 1 반환자료형이 없다.
- 반환 값이 없다는 것은
return
을 주지 않아도 된다는 것.
- 2 클래스 명과 이름이 똑같다.
- 클래스 명과 똑같이 해주어야 한다.
public class People(){
// 1. 속성
int age ;
// 2. 생성자: 클래스의 이름과 같은 걸 볼 수 있다.
People(int age){
this.age = age;
}
}
Main
에서는 생성자 대로 인스턴스화 시켜주어야 한다 !
public class Main {
public static void main(String[] args) {
Person personA = new Person(); // ❌ 에러발생
Person personB = new Person(); // ❌ 에러발생
}
}
- 3 여러 개가 존재할 수 있다.
- 아래와 같이 여러개가 존재할 수 있다.
public class People(){ // 1. 속성 int age ; String args; // 2. 생성자: 클래스의 이름과 같은 걸 볼 수 있다. People(int age){ this.age = age; } People(int age, String args){ this.age = age; this.args = args; } }
3. 기능(메서드)
- 객체의 기능을 나열하는 곳이다.
- 클래스와 관련된 기능을 작성하는 것이 좋다.
- 메서드를 활용하는 것이 객체의 기능을 활용하는 것이다.
// 예시 코드
class Person {
// 속성 정의
...
// 생성자 정의
...
// 기능 정의
// ✅ 사람의 소개 기능
void introduce() {
System.out.println("안녕하세요.");
System.out.println("나의 이름은 " + this.name + "입니다.");
System.out.println("나이는 " + this.age + "입니다.");
}
// ✅ 사람의 더하기 기능
int sum(int a, int b) {
int result = a + b;
return result;
}
}
1) Getter
- 클래스의 속성을 가져오는 기능이다.
// People 클래스
String getName() {
return this.name;
}
int getAge() {
return this.age;
}
String getAddress() {
return this.address;
}
- 위의 코드에서
Getter
기능을 정의하면Main
에서 접근 가능하다.
String name = person.getName();
int age = person.getAge();
String address = person.getAddress();
2) Setter
- 객체의 속성을 외부에서 설정할 수 있게 해준다.
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 의 주소 설정
}
}
'코딩 공부 > Java' 카테고리의 다른 글
[Java] Chpater 2- 03) 레퍼클래스 (기본형 참조형) (0) | 2025.02.25 |
---|---|
[Java] Chpater 2- 02) JVM 메모리 영역 (0) | 2025.02.25 |
[Java]Chpater 1 - 10) 메서드 (0) | 2025.02.25 |
[Java]Chpater 1 - 09) 배열 (0) | 2025.02.25 |
[Java]Chpater 2 - 08) 반복문 (0) | 2025.02.25 |