728x90
문제 : 자동차 공장은 유일한 객체이고, 이 공장에서 자동차는 제작할 때 마다 고유의 번호가 부여된다. 자동차 번호가 10001 부터 시작되어 자동차가 생산될 때마다, 1씩 늘어나게 구현하세요.
Static / singleton
public class CarFactoryTest {
public static void main(String[] args) {
CarFactory factory = CarFactory.getInstance();
Car mySonata = factory.createCar();
Car yourSonata = factory.createCar();
System.out.println(mySonata.getCarNum());
System.out.println(yourSonata.getCarNum());
}
}
public class Car {
public static int serialNum = 10000;
public int carNum;
public Car() {
serialNum++;
carNum = serialNum;
}
public int getCarNum() {
return carNum;
}
public void getCarNum(int carNum) {
this.carNum = carNum;
}
}
public class CarFactory {
public static CarFactory instance = new CarFactory();
public CarFactory() {}
public static CarFactory getInstance() {
if(instance == null) {
instance = new CarFactory();
}
return instance;
}
public Car createCar() {
Car car = new Car();
return car;
}
}
Array 배열
- 동일한 자료의 순차적 자료 구조
- 물리적, 위치와 논리적 위치가 동일
- 배열의 순서는 0부터 시작
- [ 0, 1, 2, ~ n ]
- 객체 배열이 구현된 ArrayList 활용
- 배열 내 데이터 추가,제거시 한칸씩 밀리거나 앞으로 땡겨짐
배열의 선언
int[] arr1 = new int[10];
int arr2[] = new int[10];
배열의 초기화
int[] numbers = new int[] (10,20.30); // [] 괄호 속에 개수선언은 따로 하지 않음
int[] numbers = {10,20,30}; // new int[] 생략이 가능함
int[] ids;
ids = new int[] (10,20,30); // 선언 후에 배열을 생성할 경우에는 new int[] 생략 불가
배열 테스트
public class ArrayTest {
public static void main(String[] args) {
int[] arr = new int[10];
int total = 0;
for (int i = 0, num = 1; i<arr.length; i++) { // .length 배열의 길이
arr[i] = num++;
}
for(int num : arr) {
total += num;
}
System.out.println(total);
}
}
728x90
'SpringBoot > Java' 카테고리의 다른 글
22.04.07 백준 11720번 Java (0) | 2022.04.07 |
---|---|
22.04.06 (0) | 2022.04.06 |
22.03.04 (0) | 2022.03.24 |
22.03.23 (0) | 2022.03.23 |
22.03.22 (0) | 2022.03.22 |