본문 바로가기

객체, 클래스, 인스턴스의 차이

객체, 클래스, 인스턴스

객체 -> class(설계도) -> 메모리에 올라가면 인스턴스

  • 객체 - 구현할 대상 (모든 인스턴스를 대표하는 포괄적인 의미)

  • 클래스 - 객체를 구현하기위한 설계도

  • 인스턴스 - 객체의 설계도에 따라 구현된 복사본. JVM은 해당 인스턴스를 메모리 공간에 할당한다.

 -----래퍼런스타입 ---------- 생성자
스포츠카 c = new 스포츠카();
                ---------------- 메모리에 인스턴스(갹체)를 생성해달라.
            = : c라는 변수가 스포츠카 인스턴스를 참조한다.

자동차 c = new 자동차(); (X)
자동차 c = new 스포츠카(); (자동차 기능만 사용)

모든객체 = 재사용x - 현재 프로젝트에 충실
추상화 = 필요한 것만 남기고 불필요한건 없앤다.
더 이상 참조하는 것이 없으면 garbage (메모리 낭비) -> 가비지 콜렉터가 정리해줌.


클래스는 이름이 중요하다. (직관 때문에)

  • 객체 - 관련된 기능을 모아서 가지고 있어야 한다.

  • Math : cos(); - 이름만 봐도 바로 알 수 있게


자바 주석문

  • 주석은 가급적 안적는다.(코드만 봐도 알아보기 쉽게)

  • 자바doc 주석문 클래스 위와 메소드위에. (어떤 목적으로 만들어졌는지)

  • 주석문을 많이 적으면 가독성이 떨어지므로 변수명을 잘 지어서 알아보기 쉽게 만든다.


main 메소드 프로그램 시작점

  • main 메소드에 static이 있는 이유? JVM이 인스턴스를 만들지 않고 실행하려고.

인터페이스 - 규약 (프로토콜) 구현보다 기능을 먼저 재현한다 - 인터페이스

패키지

  • 보통 패키지명은 domain주소를 거꾸로 적고 그 다음에 프로젝트 이름을 적는다.(kr.co.sunnyvale.blog) 패키지는 실제로는 디렉토리 구조가 된다. 관련된 클래스를 모아둠

  • 주요 package

    • java.lang

    • java.util

    • java.io


'Java' 카테고리의 다른 글

자바 입출력 IO  (0) 2018.11.30
Comparator와 Comparable의 차이 + 람다표현식  (0) 2018.11.29
객체지향 프로그래밍의 특징  (0) 2018.11.29
자바의 특징  (0) 2018.11.29
자바 : 쓰레드(Thread)란?  (0) 2018.11.29