티스토리 뷰

Java/기본

029. 클래스 ( Class )

따강아지 2022. 5. 11. 22:41

1. Class

  • Class : -분류 또는 종류라고 하는 동종의 모임
    - 일반 Class, 추상 Class
  • Instance : 구체적인 것 ( Class의 생성자로 객체를 만드는 과정 : Instance 화  )

1-1. Class 구조

  • 외부 구성 요소
    - package  : 자바 Class 를 모아 놓은 디렉토리
    - import  : 다른 package를 사용 할 때 포함 해야 함
    - class  : external class로 public를 키워드를 붙일 수 있다.
  • 내부 구성 요소
    - field  :  Class의 속성, Class내부에서 사용 하는 변수
    - constructor  : 객체를 생성하는 역할 담당.  생략 하면 기본 생성자 자동 생김
    - method  : Class가 가지고 있는 기능(함수)
    - innerClass  : Class내부에 있는 Class

2. 객체 ( Class )

  • 변수와 메소드를 정의 하는 프로토타입
  • Field(맴버변수:객체의상테) + Operation(Method:객체의 행위)
  • 클래스 이름은 대문자로 시작, 다음 단어의 시작은 대문자
  • 사용자 정의 자료형, 객체의 자료형
     ( Sample sample = new Sample() )
  • Class 키워드로 선언, 논리적인 개체, 한번만 선언
  • 선언 시 키워드
     : public - 접근지정자가 맨 처음, 
     : abstract - 추상클래스를 선언
     : final - 더 이상 자식으로 상속되지 않음을 명시,
     : ClassName - 클래스 이름
     : extends - 다름 클래스를 상속, 
     : implements - 인터페이스 구현)
  • 초기화 순서 
     : 메모리에 적재된 후 한 번 초기화
       - 모든 클래스 변수 (static 변수) 가 디폴트 값으로 초기화

3. 객체 ( Object )

  • new 키워드에 의해서 만들어지며, 클래스의 인스턴스, 물리적인 개체 필요할 때 마다 생성
  • type이 Class인 변수
  • 객체 이름은 소문자로 시작, 다음 단어의 시작은 대문자

4. 절차적 프로그램과 구조와 차이점 

4-1. 절차적 프로그램 

절차적 프로그램

절차적 프로그래밍(procedural programming)은 절차지향 프로그래밍 혹은 절차지향적 프로그래밍이라고도 불리는 프로그래밍 패러다임의 일종으로서, 때때로 명령형 프로그래밍과 동의어로 쓰이기도 하지만, 프로시저 호출의 개념을 바탕으로 하고 있는 프로그래밍 패러다임을 의미하기도 한다.



참고 : WIKI 절차적프로프로그램


객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍의 패러다임 중 하나이다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.
다른 객체의 행위를 접근 하기 위해서는 접근 지정자에 따라서 접근이 가능하며, static 선언시는 바로 접근이 가능한다.

* 인스턴스화란 Class의 생성자로 객체를 만드는 과정을 의미 한다.

참고 : WIKI 객체지향 프로그램


5. Instance

클래스( Class )의 생성자로 객체( Object )를 만드는 과정을 인스턴스화 ( Instantiation )이라 하며 이 과정에서 만들어진 객체를 인스턴스(  Instance )객체라한다.   

5-1. 객체 생성 

public class ClassObject {
   ClassStruct classStruct = new ClassStruct();
   classStruct.setNum(10);
   int num = classStruct.getNum();
   System.out,println("num = " + num);
}


5-2. 메모리 구조

1. ClassStruct 를 인스턴스화 하면 Class는 인스턴스 메서드 영역에 클래스와 메서드가 저장 되고 인스턴스변수(classStruct)는 stack에 변수로 할당이 됩니다. 

2. 인스턴스변수(classStruct)의 값으로 메모리 주소를 가지고 있으면 이 메모리 주소는 new  연산자로 생성된 객체가 Heap에 Object로 할당 된 값입니다.


* Heap :
   Object A : 100번지
   Object B : 200번지
* Stack :
   a1 : Object A의 주소
   a2 : Object A의 주소

'Java > 기본' 카테고리의 다른 글

031. Java 외부 구성 요소  (0) 2022.05.16
030. Class 구성 요소  (0) 2022.05.16
028. 객체 지향 프로그램 ( OOPL )  (0) 2022.05.09
027. 자바 : 제어문  (0) 2022.03.14
026. 자바 : instance 연산자  (0) 2022.03.06