[Java] 클래스

이병수·2023년 12월 28일
0

Java

목록 보기
6/27
post-thumbnail
post-custom-banner

클래스


클래스에 대하여

객체를 정의하는 틀 또는 설계도와 같은 의미
객체의 상태를 나타내는 필드와 객체의 행동을 나타내는 메서드로 구성된다.

public class Student {
	String name;
    int age;
    int grade;
}

클래스에 정의한 변수들을 멤버 변수 또는 필드 라고 한다.

String name, int age, int grade // 이게 멤버 변수이다.

클래스를 사용해서 실제 메모리에 만들어진 실체를 객체 또는 인스턴스라고한다.

즉, 클래스는 설계도, 설계도를 기반으로 실제 메모리에 만들어진 실체가 객체 또는 인스턴스


선언 방식

1. 변수 선언

Student student1
  • Student 타입을 받을 수 있는 변수를 선언한다.

  • Student 타입의 객체(인스턴스)를 받을 수 있음


2. 객체 생성

new Student();
  • new Student()를 통해 새로운 객체를 생성한다.

  • new 연산자를 통해 Student 타입의 객체가 생성되는 것

  • 이렇게 하면 메모리에 해당 Student 객체(인스턴스)를 생성하며 해당 객체의 주소값을 반환한다.

  • Student 클래스에는 String name, int age, int grade 멤버 변수도 있으므로 해당 메모리 공간도 같이 확보된다.


3. 참조값 보관

Student student1 = new Student();
  • 객체를 생성하면 자바는 메모리 어딘가에 이 객체를 접근할 수 있는 참조값을 반환한다.

  • new Student()를 통해 생성된 객체의 참조값을 반환한다.

  • Student student1 변수는 메모리에 존재하는 실제 Student 객체(인스턴스)의 참조값을 가지고 있다.

※ 따라서 실제 객체에 접근하고 싶으면 student1 변수를 통해서 접근할 수 있다.


실제 참조값

사진에 나온 것처럼 @뒤에 숫자들이 참조값(메모리 주소)이다.
이 참조값은 랜덤으로 배정이 된다.


객체 사용

클래스를 통해 생성된 객체를 사용하려면 메모리에 존재하는 객체에 접근해야한다.

객체에 접근하려면 .(점, dot)을 사용한다.

Student student1 = new Student();
student1.name = "이병수";
student1.age = 27;

정리

1. 클래스 - Class

  • 클래스는 객체가 가져야 하는 속성(상태, 변수)기능(메서드)를 정의한다.

  • 객체를 생성하기 위한 설계도

2. 객체 - Object

  • 클래스에서 정의한 속성(상태, 변수)기능(메서드)을 가진 실체이다.

  • 객체는 서로 독립적인 상태를 가진다.

3. 인스턴스 - Instance

  • 특정 클래스로부터 생성된 객체를 의미한다.

  • 객체와 인스턴스가 클래스로부터 나온 실체라는 의미에서 비슷하게 사용된다.

  • 주로 객체가 어떤 클래스에 속해 있는지 강조할 때 사용


참고사항

자바에서 대입(=)은 항상 변수에 들어있는 값을 복사해서 전달 한다는 것을 잊지말자!

따라서 객체(인스턴스)를 대입한다고 하면 객체(인스턴스) 자체를 복사하는 것이 아닌 객체(인스턴스)의 위치를 가리키는 참조값을 복사한다!


참고

김영한의 실전 자바 - 기본편

profile
백엔드 개발자가 되고 싶어요
post-custom-banner

0개의 댓글