2.1 λ§€μ§ λλ²λ₯Ό μμλ‘ λ체
void setPreset(int speedPreset) {
if (speedPreset == 2) {
setTargetSpeedKmh(16944);
} else if (speedPreset == 1) {
setTargetSpeedKmh(7667);
} else if (speedPreset == 0) {
setTargetSpeedKmh(0);
}
}
void setTargetSpeedKmh(double speed) {
targetSpeedKmh = speed;
}
μ μ½λ μ‘°κ°μ²λΌ μλ¬΄λ° μλ―Έμλ μ«μκ° νλ‘κ·Έλ¨μ λμμ μ μ΄νλ€λ©΄ "λ§€μ§ λλ²"λΌκ³ λΆλ₯Έλ€.
μ΄λ¬ν 맀μ§λλ²μ μ¬μ©μ μ νν λ»μ΄ μ ν΄μ Έμμ§ μκΈ° λλ¬Έμ μ€λ₯κ° λ°μνκΈ° μ¬μ°λ©° μ¬μ©μκ° λ©μλ λ΄λΆμ λν μ§μμ μκ³ μμ΄μΌλ§ νλ€.
λ°λΌμ, μ΄λ¬ν "λ§€μ§ λλ²"λ₯Ό μμ 보μ.
μ°λ¦¬λ staticκ³Ό finalμ μ΄μ©ν΄μ λ³μλ₯Ό λ± νλ²λ§ μ‘΄μ¬νλ©° λ³κ²½ν μ μκ² μμλ‘ λ§λ€ μ μλ€.
static final double CRUISE_SPEED_KMH = 16944;
static final int CRUISE_SPEED_PRESET = 2;
void setPreset(int speedPreset) {
if (speedPreset == CRUISE_SPEED_PRESET) {
setTargetSpeedKmh(CRUISE_SPEED_KMH);
}
CRUISE_SPEED_PRESETμ²λΌ λ³μλͺ μ λΉκ΅μ λ£μΌλ©΄ μ¬μ μλ μ€μ κ³Ό νκΉ μλκ° ν¨μ¬ λͺ νν΄μ§λ€.
2.2 μ μ μμ λμ μ΄κ±°ν
2.1 μ²λΌ μ¬μ©νλ©΄ μ¬μ©μκ° ν¨μμ μ ν¨νμ§ μμ κ°μ λ£μ μ μλ€.
enum νμ μ μ¬μ©νλ©΄ μ΄ νμμ μ»΄νμΌλ¬ λ¨μμ λ§μ μ μλ€.
enum SpeedPreset {
STOP(0), PLANETARY_SPEED(7667), CRUISE_SPEED(16944);
final double speedKmh;
SpeedPreset(double speedKmh) {
this.speedKmh = speedKmh;
}
}
μ΄κ±°νμ μ μΈν΄μ μ¬μ©νλ©΄ μ΄κ±°νμ μ‘΄μ¬νμ§ μλ κ°μ μ»΄νμΌ μμ²΄κ° μλκ² λ§μ μ μλ€.
2.3 For 루ν λμ For-Each
μ ν΅μ μΈ μν λ°©μ 보λ€λ For-Eachλ₯Ό μ¬μ©νμ¬ μΈλ±μ€ λ²νΈλ₯Ό νλ‘κ·Έλλ¨Έκ° λͺ¨λ₯΄κ² νμ. (νλ‘κ·Έλλ¨Έκ° μ μ§λ₯Ό μ μλ μ€λ₯ λ°©μ§)
for (String check : checks) {
System.out.println(check);
}
컬λ μ μ κ° μμλ§ μ²λ¦¬νλ λ°©μμΌλ‘ μ€λ₯λ₯Ό λ°©μ§ν μ μλ€.
2.4 μννλ©° 컬λ μ μμ νμ§ μκΈ°
컬λ μ μ μννλ©΄μ 컬λ μ μ μμ νκ² λλ©΄ "ConcurrentModificationException"μ΄ λ°μνλ€. μ»΄νμΌ νμμλ μ΄ μ€λ₯λ₯Ό μ‘μλ΄μ§ λͺ»νλ€.
μ°λ¦¬κ° ν μ μλ λ°©λ²μ μμ μ μνλ μμλ₯Ό κΈ°μ΅ν΄λκ³ μνκ° λλ ν μμ νλ λ°©λ² νλκ° μκ³
Iteratorλ₯Ό νμ©ν΄μ μν μ€μ μμ μ μ¬λ°λ₯΄κ² μνν μ μλ€.
Iterator<Supply> iterator = supplies.iterator();
while (iterator.hasNext()) {
if (iterator.next().isContaminated()) {
iterator.remove();
}
}
2.5 μννλ©° κ³μ° μ§μ½μ μ°μ°νμ§ μκΈ°
κ³μ°μ΄ λ§μ΄ νμν λμμ μννλ©΄μ λ§€λ² μ€ννμ§ μκΈ°.
λ§€λ² μ€ννκΈ° λ³΄λ¨ μν μ μ νμν λμμ λ¨Όμ μνν΄λκ³ μ¬μ©νμ.
2.6 μ μ€λ‘ κ·Έλ£Ήν
μ¬λ°±μ μ¬μ©ν΄μ μλ‘ μλ―Έκ° λΉμ·ν κ²λΌλ¦¬ λΆμ¬μ μ¬μ©νκ³ μλ―Έκ° λ€λ₯΄λ€λ©΄ ν μ€μ λμ΄μ μ¬μ©νμ.
2.7 μ΄μ΄λΆμ΄κΈ° λμ μμν
String entry = author.toUpperCase() + ": [" + formattedMonth + "-" +
today.getDayOfMonth() + "-" + today.getYear() + "](Day " +
(ChronoUnit.DAYS.between(start, today) + 1) + ")> " +
message + System.lineSeparator();
logbook.write(entry);
μ μ½λ μ²λΌ λ¬Έμμ΄μ λμ΄μμΌλ‘ νννλ©΄ μ€μ λ‘ μ΄λ»κ² μΆλ ₯λ μ§ κ΅μ₯ν νΌλμ€λ½λ€.
μ½λλ₯Ό κ°μν μμΌλ³΄μ (λ μ΄μμκ³Ό λ°μ΄ν°μ λΆλ¦¬)
String entry = String.format("%S: [%tm-%<te-%<tY](Day %d)> %s%n",
author, today,
ChronoUnit.DAYS.between(start, today) + 1, message);
logbook.write(entry);
μ μ½λμ²λΌ "μμ λ¬Έμμ΄"μ μ¬μ©νλ©΄ λ μ΄μμκ³Ό λ°μ΄ν°λ₯Ό λΆλ¦¬ν΄μ μ¬μ©ν μ μλ€.
2.8 μ§μ λ§λ€μ§ λ§κ³ μλ° API νμ©νκΈ°
μ΄μ μλ λͺ¨λ μλ£κ΅¬μ‘°μ μκ³ λ¦¬μ¦μ μ§μ ꡬννμ§λ§ μ΄λ μκ°μ΄ λ§μ΄ κ±Έλ¦¬κ³ μ€λ₯λ λ°μνκΈ° μ¬μμ§λ€.
μ λ§λ€μ΄μ§ μλ° API(String, List λ±)μ μ¬μ¬μ©νλ©΄ λΉ λ₯΄κ³ μ΅μ νλ μ½λλ₯Ό μ½κ² μ¬μ©ν μ μλ€.
int getQuantity(Supply supply) {
Objects.requireNonNull(supply, "supply must not be null");
return Collections.frequency(supplies, supply);
}
Collectionsμ frequencyλ©μλλ₯Ό μ¬μ©νλ©΄ suppliesμμ supplyμ λΉλλ₯Ό μ½λ©μμ΄ μ½κ² ꡬν μ μλ€.
2.9 2μ₯μμ λ°°μ΄ λ΄μ©
- λ§€μ§ λλ² μ²λ¦¬
- enum(μ΄κ±°ν) μ¬μ©νκΈ°
- For-Each, μμν
- **μλ° API μ κ·Ή νμ©νκΈ°**
'πμ½μ μ± μ 리 > μλ° μ½λ©μ κΈ°μ ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μλ° μ½λ©μ κΈ°μ ] 6μ₯ : μ¬λ°λ₯΄κ² λλ¬λ΄κΈ° (0) | 2021.04.15 |
---|---|
[μλ° μ½λ©μ κΈ°μ ] 5μ₯ : λ¬Έμ λ°μμ λλΉνκΈ° (0) | 2021.04.14 |
[μλ° μ½λ©μ κΈ°μ ] 4μ₯ : μ¬λ°λ₯΄κ² λͺ λͺ νκΈ° (0) | 2021.04.13 |
[μλ° μ½λ©μ κΈ°μ ] 3μ₯ : μ¬κΈ°λ‘κ² μ£Όμ μ¬μ©νκΈ° (0) | 2021.04.09 |
[μλ° μ½λ©μ κΈ°μ ] 1μ₯ : μ°μ μ 리λΆν° (0) | 2021.04.06 |