User 클래스
String name;
이런 클래스 하나 만들어놓고
다른 클래스 파일에서 User user1 = new User();로 객체 하나 만들면
User의 인스턴스가 생성되는데
user1의 값은 위에서 새로 생성된 객체의 주소, 위치가 복사되는 거고
User user2 = new User();로 객체를 하나 더 만들면
User의 인스턴스라서 user1과 모양은 같지만 user2라는 전혀 다른 새로운 하나의 객체가 생성된다
user에 복사된 값은 인스턴스의 주소이기 때문에 변수 뒤에 .을 붙이고 그 위치에 존재하는 필드를 사용해야 된다
user.name = "유동“ 이렇게
초급 강의라서 쉬울 줄 알았는데 생각보다 되게 아리송한데 제가 이상한 건가요
혹시 김xx 강의냐? 그냥 이것이자바다 책 보면 더 쉽게 설명되어 있음 모양은 같지만 이라고 이해하는건 별로 좋지 못함 어떤 메소드에서 참조변수를 선언하면 스택 변수에 객체 주소가 들어오는건 맞음 user1 객체의 필드 내에 있는 특정 public 변수값은 힙에 존재하는 user1 객체 내에 있기 때문에 멤버 접근 연산자를 통해서만 접근할 수 있음
이것이 자바다 읽다가 좀 어려워서 강의 보고 있어요 강의 보고 다시 천천히 책 정독해보려고요
클래스 정보는 런타임 시점에 메모리 내의 메서드 영역에 저장됨 User 라는 타입만 같은 클래스니까 모양이 같다고 라고도 생각할 수 있는데 같은 타입이고 user1 user2는 다른 인스턴스라고 받아들이는게 나중에 추상클래스나 인터페이스 관련 다형성 공부할때 헤메지 않음
타입은 같지만 별개의 인스턴스다 똑같이 생긴 집 2개라고 보면 되는 건가요 주소는 다른 각각의 집
ㅇㅇ비슷하긴 한데 많이들 비유하는게 설계도(클래스)랑 설계도로 만든 제품(인스턴스) 정도로 비유함 똑같은 설계도로 만들어도 각각 다른 제품
ㅇㅎ 감사합니다 나중에 또 막히는 부분 있으면 질문하러 오겠습니다 ㄱㅅㄱㅅ