▶ 배열의 선언과 생성 이해
https://zoooom-in.tistory.com/44
[김영한_자바입문][9.배열] 배열의 선언과 생성 이해하기 (p.2-7)
배열 선언은 아파트 부지 확보, 생성은 몇 개의 아파트를 확보할 것인지 배열의 값 할당은 부지를 참조해 실제 준공일을 기입한다. 할당 전까지는 부지 주소만 참조되어 나타난다. [코드 읽기 전
zoooom-in.tistory.com
1. 배열 이해하기
[p.14 / ClassStart2_배열 발췌]
public static void main(String[] args) {
String[] studentsName = new String[2];
studentsName[0] = "학생1";
studentsName[1] = "학생2";
System.out.println(studentsName); //참조값
System.out.println(studentsName[0]); //부지 위치 기반 데이터 입력
System.out.println(studentsName[1]); //부지 위치 기반 데이터 입력
}
*배열 도식화 : 위치를 알고 찾아가야 부지에 알맞은 건물을 지을 수 있다.
String[] studentsName = new String[2];
- String 타입의 메모리 공간 2개를 확보한다.
- String 타입의 'studentsName' 변수 선언 후, 2개의 메모리 공간을 가리키는 위치(참조값)를 변수에 전달한다.
- 참조값을 통한 데이터 접근이 가능하다.
1) studentsName[0] = "학생1" : 배열의 특정 인덱스에 값을 할당한다.
2) 출력 : studentsName[0]
∴ 실제는 x001[0] = "학생1"
>> 출력값
[Ljava.lang.String;@b4c966a 학생1 학생2 |
▶ 클래스 도입 / 객체 도입 / 배열 사용
https://zoooom-in.tistory.com/48
[김영한_자바기본][1.클래스와 데이터] (보충) 클래스 도입/객체 사용/ 배열 도입 (p.16-34)
▶ 클래스 도입, 객체 이해하기 https://zoooom-in.tistory.com/43 [김영한_자바기본][1.클래스와 데이터] 클래스 도입, 객체 이해하기(인스턴스) (p.15-23) Class는 설계도로, 객체(인스턴스)는 설계도를 구현
zoooom-in.tistory.com
▶ 클래스 도입, 객체 이해하기
https://zoooom-in.tistory.com/43
[김영한_자바기본][1.클래스와 데이터] 클래스 도입, 객체 이해하기(인스턴스) (p.15-23)
Class는 설계도로, 객체(인스턴스)는 설계도를 구현한 설계툴로 보자 정보 참조는 설계툴을 통해 이루어지며, 입력 전까지는 설계툴에는 원본(설계도면) 위치만 뜬다. [코드 읽기 전, 이해 도모를
zoooom-in.tistory.com
2. 클래스 도입 이해하기 (변수선언 / 객체 생성 / 참조값 보관)
[p.16 / ClassStart3] 객체 생성
public static void main(String[] args) {
Student student1 = new Student();
student1.name = "학생1";
student1.age = 15;
student1.grade = 90;
Student student2 = new Student();
student2.name = "학생2";
student2.age = 16;
student2.grade = 80;
System.out.println("이름 : " + student1.name + ", 나이 : " + student1.age + ", 성적 : " + student1.grade);
System.out.println("이름 : " + student2.name + ", 나이 : " + student2.age + ", 성적 : " + student2.grade);
}
*객체 도식화 : 위치를 알고 찾아가야 설계도 부품에 걸맞은 건물을 지을 수 있다.
Student student1 = new Student();
- `Student` 클래스를 기반으로 새로운 객체(실체)를 생성한다.
- 새로운 객체는 `Student` 클래스를 기반으로 만들어지며, 클래스의 템플릿에 따라 메모리 공간이 할당된다.
- student1 과 student2는 서로 각각의 다른 객체로써, 다른 참조값을 가진다.
- 따라서 student1라는 변수를 기반으로 실체의 위치를 찾고(참조값), 해당 변수를 이용하여 값을 대입한다.
Student student2 = new Student();
>> 출력값
이름 : 학생1, 나이 : 15, 성적 : 90 이름 : 학생2, 나이 : 16, 성적 : 80 |
▶ 클래스 도입 / 객체 도입 / 배열 사용
https://zoooom-in.tistory.com/48
[김영한_자바기본][1.클래스와 데이터] (보충) 클래스 도입/객체 사용/ 배열 도입 (p.16-34)
▶ 클래스 도입, 객체 이해하기 https://zoooom-in.tistory.com/43 [김영한_자바기본][1.클래스와 데이터] 클래스 도입, 객체 이해하기(인스턴스) (p.15-23) Class는 설계도로, 객체(인스턴스)는 설계도를 구현
zoooom-in.tistory.com
3. 배열과 클래스의 이해
[p.24 / ClassStar4]
public static void main(String[] args) {
Student[] students = new Student[2];
Student student1 = new Student();
student1.name = "학생1";
student1.age = 15;
student1.grade = 90;
students[0] = student1;
Student student2 = new Student();
student2.name = "학생2";
student2.age = 16;
student2.grade = 80;
students[1] = student2;
for (Student student : students) {
System.out.println("이름 : " + student.name + ", 나이 : " + student.age + ", 성적 : " + student.grade);
}
}
- student1는 참조값 x005, student2는 참조값 x007를 가진다.
- 이를 students라는 배열에 값을 담으면 배열 변수는 x001라는 참조값을 가진다.
- x005의 참조값 안에는 x001과 x002가 있다.
- 즉 향상된 for문 안으로 들어가서 확인해보면, students는 x005이고, student는 x001과 x002이다.
- 따라서 x001과 x002에 인덱스를 선언한다면 x001 = x005[0], x002 = x005[1]로 볼 수 있다.
*클래스 배열 도식화 : 위치를 알고 찾아가야 설계도 부품에 걸맞은 건물을 → 알맞은 부지에 지을 수 있다.
students[0] = student1;
- 해당 코드를 살펴보면 설계도면을 구현한 내역을 첫번째 동호수에 건물을 짓겠다는 의미다.
- `student1` 객체를 생성하고 그 객체를 가리키는 참조값(위치)을 변수 `students`의 첫 번째 인덱스에 할당한다.
- `student1` 객체의 참조값은 예를 들어 `x005`라고 가정한다.
- `students` 배열의 참조값은 다른 위치(예: `x001`)를 가리키고 있다.
- 따라서 첫 번째 인덱스 `x001[0]`에 `x005`를 할당한다.
*내역 가시화 : 배열 접근 → 객체 접근
1) 향상된 for문 사용이 가시화하기 좋다.
for (Student student : students) {
System.out.println("이름 : " + student.name + ", 나이 : " + student.age + ", 성적 : " + student.grade);
}
2) 이해 도모를 위한 일반 for문 : 쉽게 보면 하나의 큰 틀안에 두가지를 꺼내는 것
for (int i = 0; i < students.length ; i++) {
System.out.println("이름 : " + students[i].name +
", 나이 : " + students[i].age + ", 성적 : " + students[i].grade);
}
- x001 변수 'students' 내부에 있는 x005 'student1' 변수 호출
- x005를 호출하기 위해선 "."을 사용해야 한다.
- 즉 배열의 내역을 확인하기 위해 더 들어가서 객체의 내역을 부르면 된다고 이해하면 된다.
>> 출력값
이름 : 학생1, 나이 : 15, 성적 : 90 이름 : 학생2, 나이 : 16, 성적 : 80 |
'Java > [inflearn] 자바 기본' 카테고리의 다른 글
[김영한_자바기본][3. 객체 지향 프로그래밍] (보충) 객체 지향 메서드 이해 (p.8-9, p.12) (0) | 2024.02.15 |
---|---|
[김영한_자바기본][2. 기본형과 참조형] (보충) 메서드에 객체 전달 / 메서드에서 객체 반환 / NullPointerException (p.16-20, p.26-29) (0) | 2024.02.15 |
[김영한_자바기본][11. 다형성2] 다형성 사용 이유 및, 순수 추상 클래스(p.1-20) (0) | 2024.02.13 |
[김영한_자바기본][10. 다형성1] 상속과 메모리 구조(p.1-23) (2) | 2024.02.10 |
[김영한_자바기본][9.상속] 상속과 메모리 구조(p.7-20) (0) | 2024.02.08 |