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글이 짧아지는게 조금 아쉽다. 이제 어느정도 공부 방향은 잡았으니 진짜 더 열심히 할 것이다.
'내일배움캠프 Spring 5기' 카테고리의 다른 글
내일배움캠프 14일차 TIL - 웹(Stateless, Stateful) (0) | 2024.05.02 |
---|---|
내일배움캠프 13일차 TIL - 확장&상속(Extends) (1) | 2024.05.01 |
내일배움캠프 11일차 TIL - 과제(Calculator) (0) | 2024.04.30 |
내일배움캠프 10일차 TIL - 예외(Exception) (0) | 2024.04.25 |
내일배움캠프 9일차 TIL - 클래스(Class) (1) | 2024.04.25 |