JAVA

[Java] Class

SangRok Jung 2022. 6. 2. 11:55
반응형

 

 

Class


자료와 자료를 처리하는 기능이 모여있는 사용자 정의형 데이터 타입

* Class = Data + Method

 

Data : 프로그램에서 유지, 관리해야할 데이터, Attribute라고도 함

Method : Data를 조작하는 함수.

 

 

 

 

Static

  • Memory에 할당을 전역영역에 하기 위한 Keyword.

전역영역 할당의 의미

  • 전역 접근이 가능해 Application이 종료할 때 까지 존재.
  • Heap, Stack Memory 영역과 관련이 없음.
  • 접근할 때 Class명 만을 이용.

 

 

 

 

Class Variable

  • Static을 이용하여 선언된 Attribute
  • 전역영역에 위치
  • Class의 instance와 전혀 상관이 없음.
  • 접근시 Class명 이용.

 

 

 

 

Class Method

  • Static으로 선언한 Method
  • 전역 영역에 위치
  • Class의 instance와 전혀 상관이 없음.
  • 접근시 class명을 이용.
  • this가 존재하지 않음.

 

 

 

 

 

 

 

 

 

 

 

 

 

Instance


Class가 메모리에 적재되어 구조화된 MemoryBlock.

Object라고도 불림.

Instances는 모든 OOP가 동일한 방식으로 만드는 것은 아니나 일반적으로 유사성이 있음.

 

 

 

 

 

 

 

Constructor


Class를 메모리에 적재할 때 이를 초기화 하기 위한 특별한 Method

Constructor는 Class와 이름이 같으나 ReturnType 이 없다.

 

특징

  • 명시적으로 작성을 하지 않을 경우 Java Compiler가 Basic Constructor를 추가함.
  • 일반적으로 Overloading된 Constructor만 있는 경우 Basic Constructor를 넣지 않기 때문에 Basic Constructor를 반드시 작성해야함. 

 

 

 

 

 

 

 

 

 

this


Instance 자기 자신에 대한 Reference Value

Method는 Parameter로 this를 받는다. (생략되어 보이지 않음)

this는 instance와 method를 binding하는 역할을 수행한다.

 

 

 

 

 

 

 

 

 

 

Package


Java Class를 분류하여 찾기 쉽게 하고 충돌을 방지하기 위해 사용하는 기법 Name-Space

Package는 Filesystem에서 directory로 구현한다.

Source Code에서는 Import keyword를 통해 접근한다.

 

 

구조

  • com.base.linearfunction 이라고 Package를 만들 경우
  • src/com/base/linearfunction/ 과 같이 동일한 directory 구조가 생성.
  • 일반적으로 하나의 package에 여러개의 class가 존재함으로 package keyword를 이용하여 묶어줌.

 

 

import

  • import keyword를 사용하여 접근
  • ex) import com.mypack.A;
  • ex) import com.mypack.*;

 

 

 

 

 

 

 

 

 

 

Information Hiding 


Class의 Data나 기능을 숨기거나 공개하는 OOP의 특성.

 

Information Hiding의 필요성

  • Security : 공개를 하지 않아야 할 Data의 보호.
  • Usability : 공개한 Data나 기능들만 사용.
  • Consitency : 정해진 방식으로만 Data를 접근.
  • Scalability : Class의 확장시 information hiding을 기반으로 확장. (Inheritance Mechanism)

 

 

Access-Level Modifier

지시자 개념 동일 Package Out of Package
Private 비공개 X X
Public 공개 O O
Protected Inheritance시 공개 O X
Default 동일 패키지 공개, 생략으로 표현 O X

 

 

 

 

 

 

 

 

 

Encapsulation


관련이 있는 Data와 Method를 묶어 Class를 조직하는 OOP의 특성.

 

 

유의사항

  • 단일 목정성 : 하나의 역할을 수행하도록 Class를 조직.
  • 유지보수성 : 유지 보수시 분석 및 변경을 쉽게 하도록 구현
  • Information hiding과 같이 이루어짐.

 

 

 

 

 

 

반응형

'JAVA' 카테고리의 다른 글

[Java] printf() 출력  (0) 2022.06.05
[Java] VSC JAVA 개발 환경 구축  (0) 2022.06.03
[Java] Overloading, String, StringBuilder  (0) 2022.06.02
[Java] Stack 구현  (0) 2022.05.31
[Java] Comment(주석), 클래스(class), 생성자, 정보은닉  (0) 2022.05.31