본문 바로가기
JAVA SE/이론 및 개념

[20.07.10/Day_03] Java SE / Encapsulation, 생성자 Constructor , DataType

by 파프리카_ 2020. 7. 9.
728x90
반응형

[ review : 복습 ! ]

  1. java가 처음이에여 !
    jdk > jre > JVM
    개발 환경 구축 : jdk 다운로드 → 환경설정: 시스템 환경변수 path등록 
  2. JVM(java virtual machine)가 하는일
    1) java app과 OS사이의 class파일을 통역사
    2) 메모리관리 : 실제 데이터있는 곳 Heap memory(통제 메모리)의 주소를 부여하여,
                                 주소값을 저장한다( ⟹Stack)
                                 그 메모리를 관리하는 것이 Garbage Collection이다. 
  3. OOP(Object Oriented Progamming) : 객체 지향 프로그래밍
    객체기본단위
       객체와 객체간의 관계를 중심으로
       분석, 설계, 구현하는 기법이다.
  4. Object 객체 란 무엇인가?
     : 시스템의 기본 단위
      : 속성(attribute/variable/field)과 기능(operation/method/function)으로 구성
  5. Class
     : 객체 Object를 만들기 위한 틀/설계도
     : 코딩의 시작은 Class 생성 ⟹ 첫글자는 대문자(ex. ClassPerson)


[ Encapsulation ]

encapsulation이란?

" public interface, private implementation"

인터페이스는 공개하고 구현부는 감춘다.

 

인터페이스 : 외부와 소통하는 역할

구현부: 해당 단위의 주요 알고리즘 

 

사용하는 이유

1. 보안 향상 (정보 은닉 Information Hiding)

2. 사용자의 편의성 향상

     - 사용자는 서비스 제공자의 구현부를 몰라도 인터페이스만 알면 사용이 가능하다.

3. 유지보수성 향상

    - 서비스를 제공하는 측의 구현부가 변경되어도, 사용자는 서비스를 이용하는 데 문제가 없다.


 [ setter / getter ] 

! private을 뚫자 !

setter : 객체의 속성(인스턴스 변수) 정보를 할당하기 위한 메서드

                ex) public void setName(String name) {

                               this.name = name;

                       }

                    * this  : 자바 예약어(keyword)로서 현재 객체를 가리키는 역할

                                  this keyword를 이용해 매개변수 name과 인스턴스변수 name을 구분

getter : 외부에서 정보를 반환받기 위한 메서드

                ex) public String getName() {

                               return name;

                       }

 

**

단축키 

주석처리 : ctrl + shift +  /

주석해제 :  ctrl + shift +  \


[ 생성자 Constructor ]

객체 생성
Person p = new Person();

Peson : Class명 or 참조형 데이터타입

p : 참조변수

= : 할당 or 대입

new : 객체 생성 시 사용하는 자바 예약어

Person() : 생성자 Constructor

 

생성자 Constructor 란? 

   : 객체 생성 시점에 실행되는 영역

 

생성자의 특징

  클래스 내에서 생성자를 명시하지 않으면,

        default 생성자를 complie할 때(저장할 때) 자동으로 삽입된다.

  개발자가 직접 클래스 내에 생성자를 명시하면,

        default 생성자는 삽입되지 않는다.

 * 생성자와 반드시 클래스명과 동일해야 한다. (메서드와 다르게 return type을 명시하지 않는다.)

 

생성자를 명시하는 이유

객체 생성 시 실행되는 생성자에 필요시 데이터를 전달하여,

객체의 속성정보에 할당하고 객체 생성 시 초기화 조건에 따라 특정 작업을 수행하도록 하기 위해서이다.

* ex) 신용카드를 만들 때(객체 생성 시) 개인신용정보(속성정보)가 있어야, 신용등급조건(초기화 조건)에 따라,

          신용카드 발급(특정작업)이 가능하다.


[ UML  | Class Diagram ]

UML(Unified Modeling Language) : 통합모델링 언어

객체지향 분석설계(OOAD : Object Oriented Analysis and Design)시 사용되는 표준화 기술

 

UML은 이렇게 생겼다.


[ Java DataType ]

기본형 primitive data type 

  : java에서 기본적으로 제공하는 데이터타입

  1 byte 2 byte 4 byte 8 byte

정수형

byte short int long

실수형

- - float double

문자형

- char -  -

논리형

boolean - - -

 

참조형 reference data type

  : 자바 클래스는 참조형 데이터 타입이 된다.

- 참조변수 : 객체를 참조하는 주소값을 저장하는 변수

- 참조형 데이터 타입 : 참조변수의 데이터 타입

 

JVM은 메모리를 관리할 때,

 객체 --저장--> Heap memory 영역

 해당 객체의 메모리 주소값 --저장--> Stack 영역

생성된 객체에 대한 접근은 Stack 영역에 저장된 주소값을 이용한다 !

728x90
반응형