오늘은 Chapter 7 배열부터 Chapter 9 패키지와 접근제어자까지 복습을 했다.
- 배열
- 참조 자료형
- 패키지와 접근제어자
- 정리
참조 자료형 배열의 각각의 값은 반드시 각각의 값을 초기화해줘야만 null 이 되지 않는다.
또한 참조 자료형은 new 를 사용하여 객체를 생성해줘야 한다.
String[] strings = new String[2];
ArrayInitValue[] array = new ArrayInitValue[2];
strings[0] = "Please visit www.GodOfJava.com";
array[0] = new ArrayInitValue();
public class ManageHeight {
int[][] gradeHeights = new int[5][];
public static void main(String[] args) {
ManageHeight manage = new ManageHeight();
manage.setData();
for (int i=0; i<5; i++) {
// manage.printHeight(i);
}
int i=0;
while (i<5) {
manage.printAverage(i);
i++;
}
}
public void setData() {
gradeHeights[0] = new int[] {170, 180, 173, 175, 177};
gradeHeights[1] = new int[] {160, 165, 167, 186};
gradeHeights[2] = new int[] {158, 177, 187, 176};
gradeHeights[3] = new int[] {173, 182, 181};
gradeHeights[4] = new int[] {170, 180, 165, 177, 172};
}
public void printHeight(int classNo) {
System.out.println("Class No.:" + (classNo+1));
for (int i=0; i<gradeHeights[classNo].length; i++) {
System.out.println(gradeHeights[classNo][i]);
}
}
public void printAverage(int classNo) {
double sum = 0.0;
for(int i=0; i<gradeHeights[classNo].length; i++) {
sum += gradeHeights[classNo][i];
}
System.out.println("Class No.:" + (classNo+1));
System.out.println("Height average:" + (sum / gradeHeights[classNo].length));
}
}
static 메서드는 클래스 변수만 사용할 수 있다.
static 을 사용해 클래스 변수가 되면 모든 객체에서 하나의 값을 바라보기 때문에 주의해서 사용해야 한다. 또한 static 블록은 딱 한 번만 실행된다.
기본 자료형은 무조건 Pass by value 로 데이터를 전달하며 참조 자료형은 Pass by Reference 로 데이터를 전달한다.
public class ManageStudent {
public static void main(String[] args) {
ManageStudent std = new ManageStudent();
Student[] student = null;
student = std.addStudent();
std.printStudents(student);
}
public Student[] addStudent() {
Student[] student = new Student[3];
student[0] = new Student("Lim");
student[1] = new Student("Min");
student[2] = new Student("Sook", "Seoul", "010XXXXXXXX", "ask@godofjava.com");
return student;
}
public void printStudents(Student[] student) {
for(int i=0; i<student.length; i++) {
System.out.println(student[i].toString());
}
}
}
public class Student {
String name;
String address;
String phone;
String email;
public Student(String name) {
this.name = name;
}
public Student(String name, String address, String phone, String email) {
this.name = name;
this.address = address;
this.phone = phone;
this.email = email;
}
public String toString() {
return name + " " + address + " " + phone + " " + email;
}
}
패키지를 선언할 때 가장 상위 패키지의 이름으로 절대 사용하면 안되는 단어는 java 이다.
접근 제어자에는 public 과 protected 와 default 와 private 이 있다.
public 은 모든 곳에서 접근 가능하며 protected 는 같은 패키지와 상속받은 경우에만 접근할 수 있다.
default 는 같은 패키지 내에서만 private 은 해당 클래스 내에서만 접근이 가능하다.
메모리 구조 및 선언과 할당 정리
공부하면서 1차원 배열과 2차원 배열 및 객체 배열에 대해 다시 정리해보았다.
프린트해놓고 봐야겠다 ✍️