Ch16. 싱글톤 패턴(static 활용)
School.java
public class School {
private static School instance = new School();
private School() {
}
public static School getInstance() {
if (instance == null) {
instance = new School();
}
return instance;
}
}
SchoolTest.java
import java.util.Calendar;
public class SchoolTest {
public static void main(String[] args) {
School school1 = School.getInstance();
School school2 = School.getInstance();
System.out.println(school1 == school2);
Calendar calendar = Calendar.getInstance();
}
Ch17. 배열(array) - 자료를 순차적으로 한꺼번에 관리하는 방법
배열의 사이즈와 엘리먼트(요소)의 사이즈는 다르다
double[] dArr = new double[5];
dArr[0] = 1.1;
dArr[1] = 2.1;
dArr[2] = 3.1;
double mtotal = 1;
for(double dnum : dArr){
mtotal *= dnum;
}
System.out.println(mtotal);
int count = 0;
double[] ddArr = new double[5];
ddArr[0] = 1.1; count++;
ddArr[1] = 2.1; count++;
ddArr[2] = 3.1; count++;
double ddtotal = 1;
for(int i = 0; i < count; i++){
ddtotal *= ddArr[i];
}
System.out.println(ddtotal);
문자 배열
char[] alphabets = new char[26];
char ch = 'A';
for(int i = 0; i < alphabets.length ; i++){
alphabets[i] = ch++;
}
for(char alpha : alphabets){
System.out.print(alpha + " ");
}
Ch18. 객체 배열 사용하기
얕은 복사
public class ObjectCopy {
public static void main(String[] args) {
Book[] library = new Book[5];
Book[] copyLibrary = new Book[5];
library[0] = new Book("태백산맥1", "조정래");
library[1] = new Book("태백산맥2", "조정래");
library[2] = new Book("태백산맥3", "조정래");
library[3] = new Book("태백산맥4", "조정래");
library[4] = new Book("태백산맥5", "조정래");
System.arraycopy(library, 0, copyLibrary, 0, 5);
library[0].setTitle("나목");
library[0].setAuthor("박완서");
System.out.println("------Library------");
for (Book book : library) {
book.showBookInfo();
}
System.out.println("------copyLibrary------");
for (Book book : copyLibrary) {
book.showBookInfo();
}
}
}
깊은 복사
public class ObjectCopy2 {
public static void main(String[] args) {
Book[] library = new Book[5];
Book[] copyLibrary = new Book[5];
library[0] = new Book("태백산맥1", "조정래");
library[1] = new Book("태백산맥2", "조정래");
library[2] = new Book("태백산맥3", "조정래");
library[3] = new Book("태백산맥4", "조정래");
library[4] = new Book("태백산맥5", "조정래");
for (int i = 0; i < library.length; i++) {
copyLibrary[i] = new Book();
copyLibrary[i].setAuthor(library[i].getAuthor());
copyLibrary[i].setTitle(library[i].getTitle());
}
library[0].setTitle("나목");
library[0].setAuthor("박완서");
System.out.println("-------Library------");
for (Book book : library) {
book.showBookInfo();
}
System.out.println("-------copyLibrary2------");
for (Book book : copyLibrary) {
book.showBookInfo();
}
}
}
Ch19. 객체 배열을 구현한 클래스 ArrayList
import ch18.Book;
import java.util.ArrayList;
public class ArrayListTest {
public static void main(String[] args) {
ArrayList<Book> list = new ArrayList<Book>();
list.add(new Book("태백산맥1", "조정래"));
list.add(new Book("태백산맥2", "조정래"));
list.add(new Book("태백산맥3", "조정래"));
list.add(new Book("태백산맥4", "조정래"));
list.add(new Book("태백산맥5", "조정래"));
for(int i = 0; i < list.size(); i++){
list.get(i).showBookInfo();
}
}
}