Java 기본 - 클래스, 객체, 배열

이유진·2023년 12월 17일
post-thumbnail

김영한님이 인프런에 새로운 Java 강의를 오픈하셨다.
SpringBoot 공부할 때 많은 도움을 받았었는데 Java강의라니..🤭

SpringBoot, Java 사용할 때 왜 이걸 써야하지? 이런 고민 없이 쓰던거니까, 남들이 다 쓰니까, 예제 코드에 그렇게 나오니까.. 했던 나날들😢

그래서 생긴 최근 고민이 내가 진정으로 SpringBoot와 Java를 알고 사용하는게 맞을까? 이걸 채우려면 어떻게 해야할까? 였는데 이런 강의가 나와주다니.

기본은 강의가 오픈되었고, 심화도 출시예정 이라고 한다.

김영한님이 설명해주시는 자바는 어떤 내용일까 궁금하기도 하고, 혹시 기본적인 내용인데 내가 놓치고 있는 부분은 없을까 하는 마음에 강의를 듣기로 했다.

부끄럽지만, 기본 내용에서도 내가 확실히 인지하고 있지 못하고 있던 내용들만 정리해보려고 한다.

클래스

public class Student {
    String name;
    int age;
    int grade;
}
public static void main(String[] args) {
        Student student;
        student = new Student(); // 실제 메모리에 할당
        student.name = "John";
        student.age = 20;
        student.grade = 90;
    }
  • class: 설계도
  • instance(객체): 실제 메모리에 만들어진 실체

class: 붕어빵 틀, instance: 붕어빵

student 객체 생성 시, java는 메모리 어딘가 객체에 접근할 수 있는 참조값(주소)를 반환한다.
student = new Student; // 메모리 할당
student = class1.Student@30f39991; // 참조값을 변수에 저장

.으로 멤버변수에 접근하여 값을 넣어주면, 메모리참조값.name"John" 이 저장된다

인스턴스? 객체?

모든 인스턴스는 객체이다.
"인스턴스" 라고 부르는 순간은 특정 클래스로부터 그 객체가 생성되었음을 강조할 때.
(대부분 구분하지 않고 쓴다)
관계를 나타낼 때 인스턴스 사용 (A instanceof B)

배열

Student class로 student1, student2 객체를 생성했다고 해보자.
그리고 두개의 객체를 배열에 저장해보자.

Student[] students = new Student[2]; // x005

new로 배열을 생성했기 때문에 메모리에 할당된다.
배열에는 지금 아무값도 없기 때문에 메모리엔 null로 초기화 된다.

students[0] = student1; // x001
students[1] = student2; // x002
// students = [x001, x002] 복사된 참조값이 들어가있는 것

student1, student2 는 메모리 참조값을 갖고 있다.
따라서 students는 메모리 참조값을 보관한다.

🌟자바에서 대입은 항상 변수에 들어있는 값을 복사한다🌟

Student[] studends = new Student[]{student1, student2};
// Student[] studends = {student1, student2}; 와 동일
profile
BackEnd Developer

0개의 댓글