Java/[인프런 김영한 실전 자바 - 기본편]

[인프런 김영한 실전 자바 - 기본편] 클래스와 데이터

h2boom 2024. 7. 15. 10:41

클래스 (Class)

  • 사람의 입장에서 데이터를 쉽고 직관적으로 관리하기 위해서 도입된 개념이다.
    • 사용자가 직접 정의하는 사용자 정의 타입을 만들기 위한 설계도"클래스"
    • ex) "학생"이라는 타입을 만들어서 관리하기 위해서 "학생" 클래스를 만든다.
  • 클래스 = 객체를 생성하기 위한 '틀', '설계도'
    • 객체가 가져야할 변수(속성), 메소드(기능)를 정의한다.
  • 객체는 클래스에서 정의한 변수(속성)와 메소드(기능)를 가진 실체

 

class Student {
	String name;
    	int age;
    	int grade;
}
  • 클래스 내부에 정의한(소속된) 변수들을 멤버 변수, 필드라고 한다.
  • 클래스 명은 관례에 따라 대문자로 시작, Camel Case로 작성한다.
    • ex) UniversityStudent

 

Student student = new Student();

//위 코드의 흐름
Student student = new Student(); // 1.Student 클래스의 객체 생성
Student student = x001; // 2.생성된 객체의 참조(주소) 값 예시
student = x001; // 3.객체의 참조 값이 Student 타입의 student 변수에 대입
  • 설계도인 클래스를 사용해서 실제 메모리에 만들어진 실체를 "인스턴스(instance)", "객체"라고 한다.
  • Student 타입 변수에는 객체 자체가 아닌 객체의 위치를 가리키는 참조 값이 들어있다!!
    • "자바에서 대입은 항상 변수에 들어있는 값을 복사해서 전달한다" => 중요한 자바 원칙!!
      • 기본 형 변수, 참조형 변수 모두 동일한 원칙으로 적용된다.
    • 그래서 다른 Student 타입 변수에 대입을 하더라도 기존 변수가 가지고 있던 참조 값을 복사해서 전달한다.
  • 여기서 Student는 클래스, student는 Student 타입을 받을 수 있는 변수다.
    • new Student()는 새로운 객체를 생성 => 생성한 객체를 Student 타입의 변수 student에 대입해주는 것
      변수에는 객체에 접근할 수 있는 참조(주소) 값이 들어가게 된다.
      • new 키워드를 통해 객체가 생성되고 나면 참조 값을 리턴한다.
    • 객체에는 Student 클래스가 가지고 있는 맴버 변수를 사용하는데 필요한 메모리 공간도 함께 확보된다.

Student 클래스의 객체가 생성되고 맴버 변수를 저장할 공간도 함께 확보되며 Student 타입 변수에 객체의 참조 값이 저장된다.

 

참조 값을 변수에 저장하는 이유?
=> 객체를 생성하는 new Student() 자체는 메모리에 실제 객체를 만드는 코드일 뿐 아무런 이름이 없다.

그렇기에 생성한 객체에 접근할 방법이 필요한데 변수에 참조 값을 저장해두고 실제 객체에 접근할 수 있도록 하는 것이다.

 

Student student = new Student();

// 객체에 접근하기 위해서 .을 사용한다.
student.name = "James";

// student 객체의 참조 값이 x001이라 가정
x001.name = "James";
  • 배열에서는 배열 인덱스에 접근하기 위해서 대괄호 []를 사용했던 것과 같이 객체에 접근하기 위해서는 .을 사용한다.
  •  . 키워드는 변수에 저장된 참조 값을 읽어서 메모리에 존재하는 객체에 접근한다.

출처 : [인프런 김영한 실전 자바 - 기본편]

https://www.inflearn.com/course/%EA%B9%80%EC%98%81%ED%95%9C%EC%9D%98-%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94-%EA%B8%B0%EB%B3%B8%ED%8E%B8

 

김영한의 실전 자바 - 기본편 강의 | 김영한 - 인프런

김영한 | 실무에 필요한 자바 객체 지향의 핵심 개념을 예제 코드를 통해 쉽게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문

www.inflearn.com