Java 이론

클래스와 객체

ss__0 2022. 6. 1. 09:11

□ 교재 : Do it! 자바 완전 정복

 

= 객체지향형 프로그래밍 : 객체를 구성하고 객체단위로 프로그래밍 (필드 / 메서드), 필요한 기능을 호출하는 것

= 객체지향 요소 : (1) 클래스 (2) 인터페이스

     - 추상메서드 : 함수의 정의가 미완성된 메서드

     - 추상클래스 : 추상(abstract) 메서드를 하나 이상 가지고 있는 클래스

     - 인터페이스 : 모든 필드는 public static final, 모든 메서드는 public abstract

     - 추상클래스와 인터페이스는 정반대의 의미 ( 여자 & 남자 이런 느낌)

 

 클래스의 구조

= 클래스 에 올 수 있는 3가지

  1. package : .java 파일의 폴더(패키지) 위치
  2. import : 다른 폴더(패키지) 위치의 클래스를 참조
  3. 외부클래스(external class) : 외부에 포함된 또 다른 클래스 / public 키워드를 사용할 수 없음 ★public은 오직 하나!

 

= 클래스 에 올 수 있는 4가지

  1. 필드 (멤버)
    • 클래스 특징(속성)을 나타내는 변수
    • 클래스 {}내에서 만들어진 변수
  2. 메서드 (멤버)
    • 클래스의 기능(void working(){...}) 
    • 리턴타입 + 메서드 이름 + () + {} 로 구성
  3. 생성자
    • 객체 생성 기능 (생성자이름 + () + {} )
    • 생성자의 이름은 클래스 이름과 동일해야 함
  4. 내부클래스(inner class) (멤버)
    • 클래스 내부에 정의된 클래스

 OOP 

  • 클래스(class) : 붕어빵기계
  • 객체(Object) = 붕어빵, 클래스의 인스턴스
  • 인스턴스 멤버 : 단팥, 슈크림... / 필드 , 메서드 , 이너클래스 →  활용하려는 재료. 이것들을 활용하려면 객체를 먼저 생성해야 한다.
A (클래스) a (참조변수) = new (Heap 메모리에 넣어라) A(); (생성자)

생성자의 출력값 >>> 객체 ( 필드 , 메서드 , 이너클래스)

"생성자를 통해서 나온 객체를 힙메모리에 넣고 그 주소값을 참조변수 a값에 넣어라"

 

▶ 객체의 생성 

  • 메서드의 공유 : 모든 생성 객체는 동일한 메서드(기능)을 가짐.
  • 즉, 객체를 구분하는 것은 속성
  • 모든 객체는 메서드를 공유

 

 객체의 활용

  • 외부호출 : 참조변수명.필드명,  참조변수명.메서드명 
  • 여기서 . 이란? 해당번지 위치의 Heap메모리로 이동하라!
  • System.out.println(a.m);  a가 가르키는 메모리에 가봐 거기에 m값이 있는데 m값을 출력해봐
  • a.m =8; a.m에 8을 대입해봐