728x90
📋 기존 코드
package class1;
public class StudentClass3 {
public static void main(String[] args) {
Student student1;
student1 = new Student(); //학생을 실제 메모리에 만든다 //x001 주소
student1.name = "학생1"; // 클래스 만든 것을 .을 통해 접근 가능
student1.age = 15;
student1.grade = 90;
Student student2 = new Student(); //x002 주소
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);
}
}
그냥 클래스를 사용하여 객체 생성만 해둔 상태의 코드
📋 리팩토링 1
package class1;
public class StudentClass4 {
public static void main(String[] args) {
Student student1;
student1 = new Student(); //학생을 실제 메모리에 만든다 //x001 주소
student1.name = "학생1"; // 클래스 만든 것을 .을 통해 접근 가능
student1.age = 15;
student1.grade = 90;
Student student2 = new Student(); //x002 주소
student2.name = "학생2";
student2.age = 16;
student2.grade = 80;
Student[] students = new Student[2]; //2개짜리 배열
students[0] = student1;
students[1] = student2;
System.out.println("이름:"+students[0].name+" 나이:"+students[0].age+" 성적:"+students[0].grade);
System.out.println("이름:"+students[1].name+" 나이:"+students[1].age+" 성적:"+students[1].grade);
}
}
배열을 사용하여 student1,2 데이터를 넣어 보관. 인덱스만 바꿔서 호출
Student 타입의 변수는 Student 인스턴스의 참조값을 보관. Student 배열의 각각의 항목도 Student 타입의 변수 = Student 타입의 참조값을 보관한다.
// 자바에서 변수의 대입(=)은 모두 변수에 들어있는 값을 복사해서 전달하는 것이다.
❗️변수에는 인스턴스 자체가 들어있는 것이 아니라 인스턴스의 위치를 가리키는 참조값이 들어있을 뿐이다. 따라서 대입(=)시에 인스턴스가 복사되는 것이 아니라 참조값만 복사된다.
📋 리팩토링 2
package class1;
public class StudentClass5 {
public static void main(String[] args) {
Student student1;
student1 = new Student(); //학생을 실제 메모리에 만든다 //x001 주소
student1.name = "학생1"; // 클래스 만든 것을 .을 통해 접근 가능
student1.age = 15;
student1.grade = 90;
Student student2 = new Student(); //x002 주소
student2.name = "학생2";
student2.age = 16;
student2.grade = 80;
//생성과 선언을 동시에 하여 최적화
//Student[] students = new Student[]{student1,student2};도 가능
Student[] students = {student1,student2};
// for(int i=0;i<students.length;i++){
// System.out.println("이름:" + students[i].name + " 나이"+students[i].age +" 성적:"+students[i].grade);
// }
for(int i=0;i<students.length;i++){
Student s = students[i];
System.out.println("이름:" + s.name + " 나이"+s.age +" 성적:"+s.grade);
}
//향상된 for문
for(Student s: students){
System.out.println("이름:" + s.name + " 나이"+s.age +" 성적:"+s.grade);
}
}
}
1. 배열 선언과 동시에 선언을 하여 최적화
2. for문을 2가지 방식으로 최적화 가능.
➡️ 1. index i를 이용하여 반복문
➡️ 2. 향상된 for문 이용
'Coding > JAVA' 카테고리의 다른 글
| [JAVA]기본형과 참조형 (0) | 2024.08.21 |
|---|---|
| [JAVA] 영화 리뷰 프로그램 (0) | 2024.08.20 |
| [JAVA] Class 사용 - 인스턴스 생성 (0) | 2024.08.20 |
| [JAVA] Class가 필요한 이유 (0) | 2024.08.20 |
| [JAVA] 입출금 리팩토링 (0) | 2024.08.18 |