scannerλ buffer μ₯μΉκ° μλ€!
scanner μ¬μ© νscanner.closeν΄μ£Όμ΄μΌ νλ€.
\n λμ΄κ°λ λ¬Έμ π΄π‘π’
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("λμ΄λ₯Ό μ
λ ₯νμΈμ : ");
int age = sc.nextInt();
System.out.print("μ΄λ¦μ μ
λ ₯νμΈμ : ");
sc.nextLine();
String name = sc.nextLine();
System.out.printf("λμ΄ : %d, μ΄λ¦ : %s\n", age, name);
}
}
π΄π‘π’
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
System.out.printf("%.2f", Math.pow(num, 2));
}
}
μμ : λΆλͺ¨ ν΄λμ€μ νλ(κ°), λ©μλ(ν¨μ)λ₯Ό λ¬Όλ €λ°λ κ²
λ³λμ ꡬν μμ΄ λΆλͺ¨μ λ©μλλ₯Ό μ¬μ©ν μ μλ€!
extends | super | this extends : μμμ νννλ ν€μλ
super : λΆλͺ¨ ν΄λμ€μ νλ/μμ±μ/λ©μλ μ°Έμ‘°
this : νμ¬ ν΄λμ€μ νλ/λ©μλ μ°Έμ‘°
π΄π‘π’
class Animal {
String name;
public Animal(String name) {
this.name = name; //νμ¬ μΈμ€ν΄μ€ κ° μ΄κΈ°ν
}
public void printName(String name) {
System.out.println("Animal name : " + name + this.name);
}
}
class Dog extends Animal {
String breed;
//λΆλͺ¨ ν΄λμ€κ° μμ±μμμ λ§€κ°λ³μλ₯Ό μꡬνλ©΄, μμλ λ°λμ νΈμΆν΄μΌ ν¨
//String nameμμΌλ©΄ -> There is no no-arg constructor available in 'Animal'
public Dog(βString name) {
super(name);
}
public Dog(String name, String breed) {
super(name); // βμμ μ€μ! λΆλͺ¨κ° μꡬνλ νλλ₯Ό λ¨Όμ μ±μμΌ νλ€. (νλ°°λ°μ€ μ λ¬)
this.breed = breed;
}
}
| μ’ λ₯ | μ€λͺ |
|---|---|
| ν΄λμ€ | κ° + κΈ°λ₯(ꡬνλ¨) |
| μΈν°νμ΄μ€ | κΈ°λ₯μ λν μ μ(ꡬνμ νμ²) |
π‘ν¨κ³Ό : κ°λ°μ μ μ°μ±μ΄ μ¦κ°λλ€!
π΄π‘π’
public interface Player {
// λμ κ° νμνλ ν¨μ
boolean cooperate(int round);
// μλμ μ΄μ κ° κΈ°λ‘
void recordOpponentMove(boolean opponentMove);
}
public class Pavlov implements Player {
// Payoff μμ (Main.javaμ λμΌνκ² μ€μ )
private static final int R = 3; // μμͺ½ νλ ₯
private static final int T = 5; // λ΄κ° λ°°μ , μλ νλ ₯
private static final int P = 1; // μμͺ½ λ°°μ
private static final int S = 0; // λ΄κ° νλ ₯, μλ λ°°μ
// λ§μ§λ§ λ΄ μ νκ³Ό κ·Έλ λ°μ 보μμ μ μ₯
private boolean lastMyMove = true;
private int lastPayoff = R;
/**
* @param maxRounds μ 체 λΌμ΄λ μ (Pavlov μκ³ λ¦¬μ¦ μ체λ λΆνμνλ
* Mainμμ μμ±μ μκ·Έλμ²λ₯Ό λ§μΆκΈ° μν΄ λ°μ΅λλ€)
*/
public Pavlov(int maxRounds) {
// μ λ΅ μ μ§μ λ³λ νμ€ν 리 λ°°μ΄μ νμ μμ΅λλ€
}
@Override
public boolean cooperate(int round) {
if (round == 1) {
// 첫 λΌμ΄λλ 무쑰건 νλ ₯
lastMyMove = true;
} else {
// βWinβStay, LoseβShiftβ
// 보μ R λλ P(= 곡λ νλ ₯ λλ 곡λ λ°°μ )μΌ λλ νμ¬ μ λ΅ μ μ§
if (lastPayoff == R || lastPayoff == P) {
// lastMyMove κ·Έλλ‘ μ μ§
} else {
// κ·Έ μΈ(λ΄κ° νλ ₯νμΌλ μλκ° λ°°μ ν΄ Sλ₯Ό μ»μκ±°λ,
// λ΄κ° λ°°μ νμΌλ μλλ λ°°μ ν΄ Pλ₯Ό μ μΈν Tλ₯Ό μ»μμ λ)
// μ λ΅ μ ν
lastMyMove = !lastMyMove;
}
}
return lastMyMove;
}
@Override
public void recordOpponentMove(boolean opponentMove) {
// μ§μ λΌμ΄λ 보μμ κ³μ°νμ¬ μ μ₯
if (lastMyMove && opponentMove) {
lastPayoff = R;
} else if (lastMyMove && !opponentMove) {
lastPayoff = S;
} else if (!lastMyMove && opponentMove) {
lastPayoff = T;
} else {
lastPayoff = P;
}
}
}
Pavlovν¨μλ Player μΈν°νμ΄μ€λ₯Ό implement νκΈ° λλ¬Έμ λ°λμ cooperate ν¨μμ recordOpponentMove ν¨μλ₯Ό ꡬνν΄μΌ νλ€.