Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags more
Archives
Today
Total
관리 메뉴

말하는 햄zzi

Collection-List Array/Generic/Constructor/Getter/Setter 본문

Java/Java

Collection-List Array/Generic/Constructor/Getter/Setter

대양파 2023. 5. 16. 17:01
728x90

 

컬렉션(Collection)

 

- 데이터의 집합, 그룹을 의미

JCF(Java Collections Framework)는 이러한 데이터, 자료구조인 컬렌션과 이를 구현하는 클래스를 정의하는 인터페이스를 제공

 

-Collection 인터페이스는 List, Set, Queue로 크게 3가지 상위 인터페이스로 분류  Map의 경우 Collection 인터페이스를 상속받고 있지 않지만 Collection으로 분류

 

 

 

List interface (정렬된 모든 객체 컬렉션을 저장할 수 있는 목록 데이터 전용)

 

  -중복되는 데이터들을 저장해야 할 때, 배열에 들어간 순서를 유지하고 싶을 때 사용

 

List 사용하는 이유

 

   : 길이 자동 조정 /  크기 지정 유연하게 가능 

      (Array는 생성할 때 고정된 크기값을 주어야 해서 불편하다, 선언후 길이 조정 불가 새롭게 배열 생성해야한다.)

 

 int[] arr = new int[10];
 int[] arr2 = {2,3,4};

 

 

ArrayList  - 인터페이스를 구현하는 클래스 중 대표적 (클래스는 내부적으로 배열을 이용하여 요소를 관리)

 

- 단방향 포인터 구조로 각 데이터에 대한 인덱스를 가지고 있어 조회 기능 성능이 뛰어나다.
- 검색이 빠르다 . 순차적으로 데이터가 추가된다면 빠르다.
- 하지만 List들의 중간중간 데이터에 빈번한 추가 삭제가 일어난다면 느리다.
- List 컬렉션을 여러 스레드에서 공유해야 한다면 Thread safe 하지 않다.

 

 

LinkedList

 

-List 인터페이스를 구현한 클래스 중 하나

-데이터의 순서를 유지하는 특징

 

-양방향 포인터 구조로 데이터의 추가, 삭제 시 데이터의 위치정보만 수정하면 되기에 좋은 성능을 발휘
- 하지만 검색이 느리다.

- 스택, 큐, 양방향 큐 등을 만들기 위한 용도로 쓰인다 

 

 

제네릭(Generic)

 

-컬렉션에 타입을 지정해주는 기능

  클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 의미

Ex) 반, 학과 

 

 

Constructor(생성자)

 

-클래스의 개체를 초기화하는 데 사용되는 특수 메서드

 

※생성자(Constructor)특징

  • 'new' 키워드를 사용하여 클래스의 인스턴스를 생성할 때 자동으로 호출
  • 생성자는 클래스와 이름이 같다
  • 리턴 값이 없고, 심지어 'void'도 없습니다.
  • 클래스 내부에 선언되어야 하며, 접근 제한자를 사용할 수 있다.
  • 클래스에 생성자를 정의하지 않을 시  컴파일러가 자동으로 기본 생성자를 만들어 준다.
  • 아무 것도 하지 않고, 매개변수가 없는 빈 메소드

 

Getter/ 은닉성

 

-클래스의 인스턴스 멤버 변수의 값을 외부에서 읽을 수 있도록 가져오는 메서드

-해당 변수 값을 반환하는 역할

-보통 필드 이름 앞에 "get"을 붙여서 메서드 이름을 작성

-읽기 전용으로 해당 변수의 값을 변경 X 

 

Getter : getFieldName()

-접근 제한자 : public

-ReturnType : 필드 returntype

-Method name : get + 필드 이름 (첫문자- 대문자 시작)

-Return값 : 필드 값

 

 

Setter

 

-클래스의 인스턴스 멤버변수에 값을  외부에서 변경 할 수 있도록 설정하는 메서드

-변수의 값을 인자로 받아 설정

-변수의 값을 변경하는 역할

-유효성 검사/ 제한 조건 추가하여 잘못된 값 설정을 방지

-void 타입을 리턴

 

Setter : setFieldName(type fieldName)

-접근 제한자 : public

-ReturnType : void

-Method name : set+ 필드 이름 (첫문자- 대문자 시작)

-매개 변수 타입 : 필드 타입 

 

 

Getter/Setter사용 이유

 

- 객체들이 데이터를 외부에서 직접적으로 접근하는것을 막기 위해 

  필드를 private 접근제한자로 막고, 각 필드의 Getter/Setter로 접근하는 방식 

 

  ※ Private로 만들어 외부 접근제한 후, Setter을 사용해 전달받은 값을 내부에서 가공 , 필드에 넣어주는 방식

     Getter을 사용해 필드 값 숨긴채 내부 가공한 값 가져와서 꺼내보는 방식

 

즉, 객체의 무결성 보장하기 위해 사용 

    ▷ 무결성 : 데이터의 정확성과 일관성을 유지, 보증

 

728x90
반응형