본격적으로 스프링으로 넘어가기 전에 자바에 클래스와 객체에 관해서 이해하는 시간을 가졌다
자바는 클래스보다 객체가 더 중요하다
뭔가 사용한다 -> 메모리에 올라간다
변수를 사용한다는 것, 변수를 선언한다는 것
변수를 메모리에 올리겠다는 이야기
존재하지 않는다는 뜻은, 메모리에 올라가지 않았다는 뜻 -> 사용하지 못한다 -> 클래스로만은 아무것도 하지 못한다
아무 것도 아니다 (실존하지 않는다)
틀
설계도
청사진
프로토타입
설계도로는 아무것도 할 수가 없다
집 설계도가 있다고해서 집에 살 수 있는 것이 아니다
즉 클래스만 있다면 아무것도 할 수 없다!!
클래스는 -> 메모리에 올라가지 않은 상태이다
사용할려면 객체를 생성해야한다.
int number = 1;
String hello ="hello"
Human kim = new Human();
이 3개는 똑같은 것이다
메모리 관점에서
클래스는 아무 것도 아니다
클래스를 이용해서 메모리에 올려야만 사용할 수 있다!!
진짜 모르겠다면?
본인이 직접 만든 클래스에 (.)을 붙여서 코드를 작성하지 말아라
대문자로 시작하는 것에 (.)을 붙이지 말자
사용이 가능하다는 뜻은, 메모리에 올라간 것
다시 말하자면 main()
메서드는 시작시 메모리에 올라간 것
static
때문이다
클래스로 객체를 생성하지 않아도 바로 메모리에 올려버리는 것이 static
이다.
함부로 사용하지 말자(위험하다) 100프로 이해하고 사용하는 것이 아니라면 쓰지말자
static을 사용하고 있다면 이게 정말 올바른 건지 의심
자신이 정말 잘 알고 의도적으로 사용하지 않는다면 틀린 것이다.
생성자 -> 반드시 이렇게 객체를 만들어(강제)
에러가 있으면 먼저 해석하고 그 다음 해결하자
String 과 Integer도 클래스다
String은 뒤에 new String();이 생략되어 있는 것
클래스는 설계도기 때문에 아무것도 못한다. 반드시 클래스를 통해서 객체(Object)물체를 생성해서 메모리에 올려야한다.
설계도가 아니라 실제로 존재하는 것 -> 객체
static 쓰지 말자