Chap 6. Arrays ..

2022. 4. 6. 17:24·2-1/객체지향 - java

Array

= collection of indexed variables

= 특별한 타입의 object

• 선언

int[] arr = new int[5]; 이렇게 선언 !!

-> 모든 값은 해당 자료형의 zero 값으로 초기화 됨 ( int : 0, float: 0, class: NULL)

( 거의 다 기본 값으로 자동 초기화가 되넹 머만안돼? local variable !)

 

* 선언과 동시에 초기화도 가눙

-> int [] arr = { 1,2, 3};이렇게 가능

* 크기 고정 안하고 입력으로도 받을 수 있음 

• 배열의 각 변수 = indexed variable

 

• 배열은 object 이다 !

- length를 instance variable로 가짐 -> arr.length 이렇게 접근 (이건 method가 아닌 field ! arr.length() 하면 안됨)

- variable은 레퍼런스를 저장한다 ! 주소를 저장하고 다른 곳에 배열 내용이 저장되어 잇슴

- = 연산 -> 레퍼런스 복사. 같은 값을 가리키게 됨

- == 연산 -> 같은 레퍼런스인지 비교함 (==은 딱 그 변수가 가진 값을 비교하므로)

- privacy leaks 발생 가능

 -> public double[] getArray () { return anArray; } // 하면 레퍼런스를 리턴. 클래스 객체 그대로 내보내서 이러캐하면 안댐~

      카피만드러서 해야됨

double[] temp = new double[count];
for (int i=0; i<count; i++)
	temp[i]=a[i];
return temp;

//class type 배열일경우에는//
Class[] temp= new Class[count];
for (int i=0;i<count;i++)
	temp[i]=new Class(a[i]); // copy constructor !
return temp;

 

• character의 어레이는 스트링 아님 !! String은 하나의 class type !

-> 대신 char 배열을 input으로 받는 constructor 가 존재함 ^_^

   char[] a = { 'a', 'b' }; String s=a; // 안됨 !

   String s = new String(a); // 는 됨 !

   String s = new String (a, 0, 2); // 0번째 인덱스 ~ 2번째 전까지

 

• Class base type의 array

-> arr[0]=new Date();  // 이렇게 일일이 원소에 대해 new 해줘야함!

 

• Parameter로 넣을 시

- String[] 이걸로 넣어주면 된다

- 레퍼런스 -> 내부 값 수정 가능 ~~

* 리턴을 그냥 입력받은걸로 하면 같은 레퍼런스갖는값 내보내는거. 같은 배열 가리키게됨 ! 때에 따라서 

   배열 복사해서 리턴하든 잘 하기 !

 

• Multidimensional Arrays

= 배열의 배열

- 두개의 for문으로 접근

int [][] m = new int [3][4] 이런식으로 선언

- m.length = 3 // column의 개수

- m[0].length = 4 // row의 개수

 

 

• main method의 argument

=> public static void main ( String[] args )

-> program name 뒤에 아규먼트 넣어줄 수 있다 !

 

• 배열 for each 로 접근하기 !

-> 

이렇게 할 수 ㅇ ( number=0 이렇게 값 변경은 불가 . 값을 읽어오는 것만 함 !)

( 걍 단순 copy 해옴 -> 이때 primitive이면 당연히 변경 못할꺼고, class type이면 변경 가능할 것 !)


Enumerated Types

= enum 클래스 = 열거체

- 클래스처럼 보이게 하는 상수

- 서로 관련있는 상수들끼리 모아 상수들을 정의하는 것

- enum 클래스 형을 기반으로 한 클래스형 선언

 

 

'2-1 > 객체지향 - java' 카테고리의 다른 글

Polymorphism and abstract classes  (0) 2022.04.20
Chap 7. Inheritance (상속)  (0) 2022.04.12
Chap5-2  (0) 2022.04.04
chap 4. class  (0) 2022.04.02
Chap 1,2  (0) 2022.03.30
'2-1/객체지향 - java' 카테고리의 다른 글
  • Polymorphism and abstract classes
  • Chap 7. Inheritance (상속)
  • Chap5-2
  • chap 4. class
jen.dev
jen.dev
🪽🪽🪽
  • jen.dev
    ㅇTL
    jen.dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (68)
      • 2-2 (25)
        • 파이썬, 자료구조 (11)
        • 데베시 (3)
        • 컴퓨터 네트워크 (2)
        • 알고리즘 (7)
        • 시스템 프로그래밍 (2)
      • 2-1 (28)
        • 객체지향 - java (14)
        • 자료구조 (c) (14)
      • draft (13)
        • swift (4)
        • html, javascript (8)
        • 리액트네이티브 (0)
        • 주절주절 (1)
        • 빅데이터 (0)
      • life (1)
      • Database (1)
      • Project-Doggy (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
jen.dev
Chap 6. Arrays ..
상단으로

티스토리툴바