내일배움캠프 12일차 TIL - 객체 배열(ObjectArray)

2024. 4. 30. 18:48·⛺스파르타코딩클럽
목차
  1. 오늘의 학습 
  2. 객체배열(ObjectArray)
  3. # 오늘의 회고

240430

# 오늘 꼭 기억 해야 할 것!

1. 상속과 다형성

오늘의 학습 

    ●  1. 객체배열

    ●  2. 다형성

    ●  3. 상속

객체배열(ObjectArray)

 

1. 가장 기본적인 배열

public static void main(String[] args) {
	int[] intArr = new int[index];
    Double[] doubleArr = new Double[index];
} // 가장 기본 배열 선언 및 초기화

위의 코드 예시처럼 기본 자료형을 이용해서 만드는 배열은 자바에서 가장 기본적인 배열의 모습이다.

배열 자체는 일반 변수와 다르게 변수명이 주소값을 가지게 된다. 즉, 메모리에 공간을 할당 받아서 값 자체가 아닌

주소값을 통해 배열에 접근을 하게 되는것 이다.

 

 

2. 객체 배열의 사용법

객체 배열이란 일반 배열은 위에서 본 것 처럼 기본 자료형을 이용해서 배열을 만드는데, 객체 배열은 사용자 정의 자료형

즉, 직접 만든 객체를 이용해서 배열을 만들 수 있는 것이다. 일반 배열과 같이 배열에 들어가는 값 또한 내가 정의한 자료형과 동일해야한다. 즉, 들어가는 값의 자료형과 선언한 자료형의 데이터 타입이 같아야 컴파일 오류가 발생하지 않는다.

public static void main(String[] args) {
	Animal[] aniaml = new Animal[3]; // 1. 객체 배열의 선언과 초기화

	Animal ani = new Animal("동물"); // 2. 해당 배열에 넣을 객체 생성
    
    aniaml[0] = ani; // 0번 인덱스에 객체 삽입.
    // 배열과 넣는 객체의 데이터타입 즉, 자료형이 똑같아야한다.
    
    // 2. 배열에 객체를 생성과 동시에 바로 넣는 방법
    aniaml[0] = new Animal("동물");
}

이 처럼 객체를 생성과 동시에 바로 넣을 수 있다. 이게 가능한 이유는 객체를 만들면 변수에 주소값이 할당이 되는데 어차피 배열은 인덱스로 접근을 하기 때문에 이러한 방법이 가능한 것이다.

( 배열은 주소값 자체가 인덱스에 들어가기 때문에 이러한 방법으로도 가능한것 )

 

 

3. 다형성을 이용한 객체 배열

객체 배열의 메인 => 다형성을 이용한 객체 배열을 알아보자.

// Animal, Dog, Cat, Cow 클래스 생성
public static void main(String[] args) {
	Animal[] animals = new Animal[3]; // 부모클래스 Animal타입의 객체 배열 생성
	animals[0] = new Dog("강아지");
	animals[1] = new Cat("고양이");
	animals[2] = new Cow("소");
    
    for(Animal items : animals) {
        System.out.println(items.animalName);
    }
	
}

Animal 객체를 상속받는 Dog , Cat, Cow 클래스는 Animal타입의 배열의 들어갈 수 있게된다.

이런식 객체 배열이 활용이 된다. 배열의 인덱스에 접근해서 값을 뽑게 되면 객체가 나오게 되는 좋은 배열이다.ㅎㅎ

 

# 오늘의 회고

갈수록 어려워지고 머리가 아파지는것 같다. 너무 어렵지만 열심히 노력하는 중이다.

특히 상속, 다형성, 인터페이스, 추상클래스 이 부분은 진짜 이해가 너무 안가고 어려운거 같다.

그래서 특히 상속 다형성 인터페이스 추상클래스 이부분을 집중해서 공부를 하고 있다. 최대한 많이 보고 손으로 코드를

직접 쳐보고 있는 중이다. 언젠간 손에 익고 머릿속에서도 기억이 오래 남을거라 생각하며 공부를 하고 있다.

갈수록 TIL글이 짧아지는게 조금 아쉽다. 이제 어느정도 공부 방향은 잡았으니 진짜 더 열심히 할 것이다.

'⛺스파르타코딩클럽' 카테고리의 다른 글

내일배움캠프 14일차 TIL - 웹(Stateless, Stateful)  (1) 2024.05.02
내일배움캠프 13일차 TIL - 확장&상속(Extends)  (1) 2024.05.01
내일배움캠프 11일차 TIL - 과제(Calculator)  (0) 2024.04.30
내일배움캠프 10일차 TIL - 예외(Exception)  (1) 2024.04.25
내일배움캠프 9일차 TIL - 클래스(Class)  (2) 2024.04.25
  1. 오늘의 학습 
  2. 객체배열(ObjectArray)
  3. # 오늘의 회고
'⛺스파르타코딩클럽' 카테고리의 다른 글
  • 내일배움캠프 14일차 TIL - 웹(Stateless, Stateful)
  • 내일배움캠프 13일차 TIL - 확장&상속(Extends)
  • 내일배움캠프 11일차 TIL - 과제(Calculator)
  • 내일배움캠프 10일차 TIL - 예외(Exception)
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • 전체
    오늘
    어제
    • 전체보기 (146) N
      • 🎓방송통신대학교 (25)
        • 🖥️컴퓨터과학과 (1)
        • 🌍유비쿼터스 컴퓨팅 (10)
        • ⚙️컴퓨터의 이해 (11)
        • 🏛️세계의정치와경제 (3)
      • 📚Computer Science (0)
      • 🛠️Backend (2)
      • ☕Java (16) N
        • 📝Java Programming (15) N
        • 🧩Java Design Pattern (1)
      • 🌳Spring (9)
        • 🌱Spring Framework (6)
        • 🌱Spring Security (1)
      • ⚡Python (13)
      • 🛢️Database (0)
      • 🌿GitHub (1)
      • 🌐 Network (7)
        • 📜HTTP (7)
      • 🚀DevOps (1)
      • Algorithm Problem Solving (2)
      • Data Structure (1)
      • JavaScript (1)
      • ⛺스파르타코딩클럽 (65)
      • 잡담 (1)
      • 정리가 필요한 글 (2)
  • 블로그 메뉴

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

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    Python
    Java
    클라우드
    클래스
    세계화
    방통대
    파이썬
    유비쿼터스 컴퓨팅
    spring
    컴퓨터의 이해
    자바
    다형성
    Spring Framework
    유비쿼터스 컴퓨팅개론
    방송통신대학교
    방송대
    컴파일러
    함수
    유비쿼터스
    스프링
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
junbin2
내일배움캠프 12일차 TIL - 객체 배열(ObjectArray)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.