π λ©μλ
β λ©μλ κ°μ
β λ©μλλ?
λ©μλ(method)λ μ΄λ€ νΉμ μμ μ μννκΈ° μν λͺ λ Ήλ¬Έμ μ§ν©μ΄λΌκ³ ν μ μλ€.
β λ©μλμ μ¬μ© λͺ©μ
1. μ€λ³΅λλ μ½λλ₯Ό λ©μλλ‘ λ§λ€μ΄ μ½λμ λ°λ³΅ μ¬μ©μ νΌν μ μλ€.
2. μ½λμ κ°λ μ±μ΄ μ’μμ§λ€.
3. κΈ°λ₯μ λ³κ²½μ΄ νμν κ²½μ° λ©μλ λΆλΆλ§ μμ νλ©΄ λκΈ° λλ¬Έμ, μμ¬μ΄ μ μ§λ³΄μκ° κ°λ₯νλ€.
β λ©μλ μ μΈ
μ κ·Όμ μ΄μ λ°ννμ
λ©μλμ΄λ¦ (λ§€κ°λ³μ λͺ©λ‘) {
// μ€νν μ½λ
// λ°ννμ
μ΄ μμκ²½μ° λ°ννμ
μ λ§κ² return μμ±
// λ°ννμ
μ΄ voidμΈ κ²½μ° μλ΅
return ...;
}
1. μ κ·Ό μ μ΄μ : λ©μλμ μ κ·Όν μ μλ λ²μ
- public : μ΄λμλ μ κ·Ό κ°λ₯
- protected : μμκ΄κ³μ΄κ±°λ κ°μ ν¨ν€μ§μμ μ κ·Ό κ°λ₯
- default(μλ΅κ°λ₯) : κ°μ ν¨ν€μ§μμ μ κ·Ό κ°λ₯
- private : κ°μ ν΄λμ€ λ΄λΆμμλ§ μ κ·Ό κ°λ₯
2. λ°ν νμ (return type) : λ©μλκ° λͺ¨λ μμ μ λ§μΉκ³ λ°ννλ λ°μ΄ν°μ νμ
- void : 리ν΄κ° μμ
- κΈ°λ³Έ λ³μ μλ£ν : int, float, λ±λ±
- μ€λΈμ νΈν : String, μ΄μΈ μ¬μ©μ μ μ νμ
3. λ©μλ μ΄λ¦ : λ©μλλ₯Ό νΈμΆνκΈ° μν μ΄λ¦
4. λ§€κ°λ³μ λͺ©λ‘(parameters) : λ©μλ νΈμΆ μμ μ λ¬λλ μΈμμ κ°μ μ μ₯ν λ³μλ€
5. μ€νν μ½λ : λ©μλμ κΈ°λ₯μ μννλ μ½λ
β λ©μλ νΈμΆ
미리 μ μν λ©μλλ μ°Έμ‘°μ°μ°μ(.)λ₯Ό ν΅ν΄ νΈμΆν μ μλ€.
public class Application {
public static void main(String[] args) {
Application app = new Application();
//λ νΌλ°μ€λ³μμ΄λ¦.λ©μλμ΄λ¦();
app.methodA();
//λ νΌλ°μ€λ³μμ΄λ¦.λ©μλμ΄λ¦(λ§€κ°λ³μ1, λ§€κ°λ³μ2, ...)
app.methodB(10);
}
public void methodA(){
System.out.println("method A νΈμΆλ¨....");
}
public void methodB(int x) {
System.out.println("method B λ‘ " + x + " κ° λμ΄μ΄...");
}
}
β λ©μλ νΈμΆ νλ¦
public class Application {
public static void main(String[] args) {
System.out.println("main() μμλ¨...");
Application app = new Application();
app.methodA();
System.out.println("main() μ’
λ£λ¨...");
}
public void methodA() {
System.out.println("methodA() νΈμΆν¨...");
methodB();
System.out.println("methodA() μ’
λ£λ¨...");
}
public void methodB() {
System.out.println("methodB() νΈμΆν¨...");
methodC();
System.out.println("methodB() μ’
λ£λ¨...");
}
public void methodC() {
System.out.println("methodC() νΈμΆν¨...");
System.out.println("methodC() μ’
λ£λ¨...");
}
}
λ©μλκ° νΈμΆλλ©΄ stack μμμ λ©μλλ₯Ό μν μμμ΄ ν λΉλκ³ ,
νΈμΆλ λ©μλλ€μ΄ μ€νμ΄ μλ£λλ©΄ stack μμμ ν λΉλ λ©λͺ¨λ¦¬ 곡κ°μ μ¬λΌμ§λ€.
λ©μλκ° μλ£λ μ΄νμλ νΈμΆνλ μμΉλ‘ λ€μ λμκ°μ κ·Έ μ΄ν μμ μ μ€ννλλ°,
methodA() → methodB() → methodC()μ κ°μ΄ νΈμΆλμκΈ° λλ¬Έμ
λ©μλκ° λλ λλ methodC() → methodB() → methodA()μ κ°μ΄ λμκ°κ² λλ€.
β μ λ¬μΈμ(argument)μ λ§€κ°λ³μ(parameter)λ₯Ό μ΄μ©ν λ©μλ νΈμΆ
μ§μλ³μλ μ μΈν λ©μλ λΈλ‘ λ΄λΆμμλ§ μ¬μ©μ΄ κ°λ₯νλ€.
μ΄κ²μ μ§μλ³μμ μ€μ½νλΌκ³ νλ€.
λ€λ₯Έ λ©μλ κ° μλ‘ κ³΅μ ν΄μΌ νλ κ°μ΄ μ‘΄μ¬νλ κ²½μ° λ©μλ νΈμΆ μ μ¬μ©νλ κ΄νΈλ₯Ό μ΄μ©ν΄μ κ°μ μ λ¬ν μ μλ€.
μ΄λ μ λ¬νλ κ°μ μ λ¬μΈμ(argument)λΌκ³ λΆλ₯΄κ³ ,
λ©μλ μ μΈλΆ κ΄νΈ μμ μ λ¬ μΈμλ₯Ό λ°κΈ° μν΄ μ μΈνλ λ³μλ₯Ό λ§€κ°λ³μ(parameter)λΌκ³ λΆλ₯Έλ€.
β λ©μλ 리ν΄
- λ©μλλ νμ λ§μ§λ§μ return λͺ λ Ήμ΄κ° μ‘΄μ¬νλ€.
- return μ μμ μ νΈμΆν ꡬ문μΌλ‘ 볡κ·νλ κ²μ μλ―Ένλ€.
- 볡κ·λ₯Ό ν λ κ·Έλ₯ 볡κ·λ₯Ό ν μλ μμ§λ§, κ°μ κ°μ§κ³ 볡κ·ν μ λ μλ€. μ΄λ κ°μ§κ³ κ°λ κ°μ 리ν΄κ°μ΄λΌκ³ νλ€.
- return κ°μ λ°νλ°κΈ° μν΄μλ λ©μλ μ μΈλΆμ λ¦¬ν΄ νμ μ λͺ μν΄ μ£Όμ΄μΌ νλ€.
- voidλ μ무 λ°νκ°λ κ°μ§μ§ μκ² λ€λ 리ν΄νμ μ μ¬μ©ν μ μλ ν€μλμ΄λ€.
- λ°νκ°μ΄ μλ κ²½μ° return ꡬ문μ μλ΅ν΄λ μ»΄νμΌλ¬κ° μλμΌλ‘ μΆκ°ν΄ μ£Όμ§λ§, λ°νκ°μ΄ μλ κ²½μ°λ return ꡬ문μ λ°λμ λͺ μμ μΌλ‘ μμ±ν΄μΌ νλ€. λν λ©μλ μ μΈλΆμ μ μΈν 리ν΄νμ λ°νκ°μ μλ£νμ λ°λμ μΌμΉν΄μΌ νλ€.
public class Application {
public static void main(String[] args) {
Application app = new Application();
app.testMethod();
String returnText = app.testMethod();
System.out.println(returnText); //hello world μΆλ ₯λ¨
/* λ³μμ μ μ₯νμ§ μκ³ λ°λ‘ μΆλ ₯λ κ°λ₯νλ€. */
System.out.println(app.testMethod());
System.out.println("main() λ©μλ μ’
λ£λ¨...");
}
public String testMethod() {
/* public λ€μ λ°λ‘ returnμΌλ‘ κ°μ§κ³ κ° νμ
μ λͺ
μνλ€.
* μ무 κ°λ 리ν΄νμ§ μλ κ²½μ° void, κ°μ λ°ννλ κ²½μ°μλ λ°νκ°μ μλ£νμ μμ±ν΄μΌ νλ€.
* */
return "hello world";
}
}
β λ©μλ νμ©
β μ λ¬μΈμμ λ§€κ°λ³μ ν μ€νΈ
public class Application {
public static void main(String[] args) {
Application app = new Application();
/* μ λ¬μΈμμ λ§€κ°λ³μλ₯Ό μ΄μ©ν λ©μλ νΈμΆ ν
μ€νΈ */
/* 1. μ λ¬μΈμλ‘ κ° μ λ¬ ν
μ€νΈ */
/* νΈμΆνλ €λ λ©μλμ λ§€κ°λ³μ μ μΈλΆμ 미리 μ μΈν΄λ μλ£νκ³Ό, κ°―μ, μμκ° μΌμΉνκ² κ°μ λ£μ΄ νΈμΆν΄μΌ νλ€. */
app.testMethod(40);
//app.testMethod1("40"); //λ§€κ°λ³μλ intνμ΄μ§λ§ μΈμκ° String νμ΄κΈ° λλ¬Έμ νΈμΆν μ μλ€.
//app.testMethod1(20, 30, 40); //λ§€κ°λ³μλ intν 1κ° μ΄μ§λ§ μΈμλ 3κ°μ΄κΈ° λλ¬Έμ νΈμΆν μ μλ€.
//app.testMethod1(); //λ§€κ°λ³μλ μ μΈλμ΄ μμ§λ§ μΈμλ‘ κ°μ μ λ¬νμ§ μμΌλ©΄ νΈμΆν μ μλ€.
/* 2. λ³μμ μ μ₯ν κ° μ λ¬ ν
μ€νΈ */
/* 2-1. λ³μμ μ μ₯λ κ°μ μ΄μ©νμ¬ κ°μ μ λ¬ν μ μλ€. */
int age = 20;
app.testMethod(age);
/* 2-2. μλνλ³νμ μ΄μ©νμ¬ κ° μ λ¬μ ν μ μλ€. */
byte byteAge = 10;
app.testMethod(byteAge);
/* 2-3. κ°μ νλ³νμ μ΄μ©ν΄μ κ° μ λ¬μ ν μ μλ€. */
long longAge = 80;
//app.testMethod(longAge); //μλ νλ³νμ ν μ μμ΄μ μλ¬ λ°μ
app.testMethod((int) longAge); //κ°μ νλ³νμ μ΄μ©νμ¬ μλ£νμ λ§μΆ ν νΈμΆν μ μλ€. (λ°μ΄ν° μμ€ μ£Όμ)
/* 2-4. μ°μ° κ²°κ³Όλ₯Ό μ΄μ©ν΄μ κ° μ λ¬μ ν μ μλ€. */
app.testMethod(age * 3);
}
public void testMethod(int age) {
System.out.println("λΉμ μ λμ΄λ " + age + "μΈ μ
λλ€.");
}
}
β μ¬λ¬ κ°μ μ λ¬μΈμλ₯Ό κ°μ§ λ©μλ ν μ€νΈ
public class Application {
public static void main(String[] args) {
/* μ¬λ¬ κ°μ μ λ¬μΈμλ₯Ό μ΄μ©ν λ©μλ νΈμΆ ν
μ€νΈ */
/* 1. μ¬λ¬ κ°μ λ§€κ°λ³μλ₯Ό κ°μ§ λ©μλ νΈμΆ */
Application app = new Application();
app.testMethod("νκΈΈλ", 20, 'λ¨');
//app.testMethod(20, "μ κ΄μ", 'μ¬'); //κ°μ κ°―μλ λ§μ§λ§ μμκ° λ€λ₯΄κ² μ λ¬λλ©΄ νΈμΆνμ§ λͺ»νλ€.
/* 2. λ³μμ μ μ₯λ κ°μ μ λ¬νλ©° νΈμΆν μ μλ€. */
String name = "μ κ΄μ";
int age = 20;
char gender = 'μ¬';
app.testMethod(name, age, gender);
}
public void testMethod(String name, int age, final char gender) {
/* λ§€κ°λ³μλ μΌμ’
μ μ§μλ³μλ‘ λΆλ₯λλ€.
* λ§€κ°λ³μ μμ final ν€μλλ₯Ό μ¬μ©ν μ μλ€.
* μ§μλ³μμ final ν€μλλ₯Ό λΆμ¬ μμλ₯Ό λ§λλ κ²κ³Ό λμΌνλ€.
* final λ§€κ°λ³μλ μμ λ€μ΄λ° κ·μΉμ μ νμ μΌλ‘ λ°λ₯΄λ κ²½ν₯μ΄ μλ€. (μ¨λ λκ³ μμ¨λ λ¨)
* */
System.out.println("λΉμ μ μ΄λ¦μ " + name + "μ΄κ³ , λμ΄λ " + age + "μΈ μ΄λ©°, μ±λ³μ " + gender + "μ
λλ€.");
/* λ©μλ μ£Όμλ λ¬μμ£Όμ. νΈμΆκ΅¬λ¬Έμ λ§μ°μ€λ₯Ό μ¬λ¦¬λ©΄ λ©μλμ λν μ€λͺ
μ λ³Ό μ μλ€. */
}
}
β λ©μλ λ¦¬ν΄ ν μ€νΈ
public class Application {
public static void main(String[] args) {
/* λ©μλ λ¦¬ν΄ ν
μ€νΈ */
/* λͺ¨λ λ©μλ λ΄λΆμλ return; μ΄ μ‘΄μ¬νλ€.
* void λ©μλμ κ²½μ° return;μ λͺ
μμ μΌλ‘ μμ±νμ§ μμλ λ§μ§λ§μ€μ μ»΄νμΌλ¬κ° μλμΌλ‘ μΆκ°λ₯Ό ν΄μ€λ€.
* returnμ νμ¬ λ©μλλ₯Ό κ°μ μ’
λ£νκ³ νΈμΆν ꡬ문μΌλ‘ λ€μ λμκ°λ λͺ
λ Ήμ΄μ΄λ€.
* */
/* main() λ©μλκ° μμνλμ§ νμΈνκΈ° μν΄ μΆλ ₯ ꡬ문 μμ± */
System.out.println("main() λ©μλ μμν¨...");
Application app = new Application();
app.testMethod();
/* main() λ©μλκ° μ’
λ£λλμ§ νμΈνκΈ° μν΄ μΆλ ₯ ꡬ문 μμ± */
System.out.println("main() λ©μλ μ’
λ£λ¨...");
}
public void testMethod() {
System.out.println("testMethod() λμ νμΈ...");
/* μ»΄νμΌλ¬μ μν΄ μλμΌλ‘ μΆκ°λλ ꡬ문μ΄λ€.
* κ°μ₯ λ§μ§λ§μ μμ±ν΄μΌ νκ³ , λ§μ§λ§μ μμ±λμ§ μμ κ²½μ° μ»΄νμΌ μλ¬λ₯Ό λ°μμν¨λ€.
* */
return;
//System.out.println("test"); // return μλ λ€λ₯Έ κ΅¬λ¬Έμ΄ μμ κ²½μ° μλ¬ λ°μ, returnμ λ©μλ κ°μ₯ λ§μ§λ§μ μμ±ν΄μΌ νλ€.
}
}
β λ§€κ°λ³μμ 리ν΄κ° λ³΅ν© νμ©
public class Application {
public static void main(String[] args) {
/* λ§€κ°λ³μμ 리ν΄κ° λ³΅ν© νμ© */
/* λ§€κ°λ³μλ μ‘΄μ¬νκ³ λ¦¬ν΄κ°λ μ‘΄μ¬νλ λ©μλλ₯Ό μ΄μ©νμ¬ κ°λ¨ν κ³μ°κΈ° λ§λ€κΈ° */
/* μ«μ λ κ°λ₯Ό λ§€κ°λ³μλ‘ μ
λ ₯ λ°μ μ°μ°νλ λ©μλλ₯Ό
* μ¬μΉμ°μ°λ³λ‘ μΆκ°ν΄μ νΈμΆνλ ν
μ€νΈλ₯Ό ν΄λ³΄μ
* */
int first = 20;
int second = 10;
Application app = new Application();
System.out.println("λ μλ₯Ό λν κ²°κ³Ό : " + app.plusTwoNumbers(first, second));
System.out.println("λ μλ₯Ό λΊ κ²°κ³Ό : " + app.minusTwoNumbers(first, second));
System.out.println("λ μλ₯Ό κ³±ν κ²°κ³Ό : " + app.multipleTwoNumbers(first, second));
System.out.println("λ μλ₯Ό λλ κ²°κ³Ό : " + app.divideTwoNumbers(first, second));
}
public int plusTwoNumbers(int first, int second) {
return first + second;
}
public int minusTwoNumbers(int first, int second) {
return first - second;
}
public int multipleTwoNumbers(int first, int second) {
return first * second;
}
public int divideTwoNumbers(int first, int second) {
return first / second;
}
}
β static λ©μλ ν μ€νΈ
public class Application {
public static void main(String[] args) {
/* static λ©μλ νΈμΆ */
/* μ°λ¦¬κ° μ§κΈ μμ±νκ³ μλ λ©μλλ₯Ό 보면 publicκ³Ό void μ¬μ΄μ staticμ΄λΌκ³ νλ ν€μλκ° μλ€.
* static ν€μλμ λν΄μλ λ€μμ λ€μ λ€λ£¨κ² λ μμ μ΄μ§λ§,
* static λ©μλλ₯Ό νΈμΆνλ λ°©λ²λΆν° λ¨Όμ νμ΅ν΄λ³΄μ.
* staticμ΄ μλ λ©μλμ΄κ±΄ non-static λ©μλμ΄κ±΄ λ©μλμ λμ νλ¦μ λμΌνλ€.
* */
/* λ©μλλ₯Ό μμ±ν μ΄ν static λ©μλλ₯Ό νΈμΆν΄λ³΄μ */
/* static λ©μλλ₯Ό νΈμΆνλ λ°©λ²
* ν΄λμ€λͺ
.λ©μλλͺ
(); <- μ΄λ° λ°©μμΌλ‘ νΈμΆνλ€.
* */
System.out.println("10κ³Ό 20μ ν© : " + Application.sumTwoNumbers(10, 20));
/* λμΌν ν΄λμ€ λ΄μ μμ±λ static λ©μλλ ν΄λμ€λͺ
μλ΅μ΄ κ°λ₯νλ€. */
System.out.println("20κ³Ό 30μ ν© : " +sumTwoNumbers(20, 30));
}
public static int sumTwoNumbers(int first, int second) {
return first + second;
}
}
β λ€λ₯Έ ν΄λμ€μ μμ±ν non-static λ©μλμ static λ©μλ νΈμΆ ν μ€νΈ
public class Calculator {
public int minNumberOf(int first, int second) {
return (first > second)? second : first;
}
public static int maxNumberOf(int first, int second) {
return (first > second)? first : second;
}
}
public class Application {
public static void main(String[] args) {
/* λ€λ₯Έ ν΄λμ€μ μμ±ν λ©μλ νΈμΆ */
/* μ΅λκ° μ΅μκ°μ λΉκ΅ν λ μ μλ₯Ό λ³μλ‘ μ μΈ */
int first = 100;
int second = 50;
/* λ λ©μλλ₯Ό μ°¨λ‘λ‘ νΈμΆν΄λ³΄μ */
/* 1. non-static λ©μλμ κ²½μ° */
/* ν΄λμ€κ° λ€λ₯΄λλΌλ μ¬μ©νλ λ°©λ²μ λμΌνλ€
* ν΄λμ€λͺ
μ¬μ©ν μ΄λ¦ = new ν΄λμ€λͺ
();
* μ¬μ©ν μ΄λ¦.λ©μλλͺ
();
* */
Calculator calc = new Calculator();
int min = calc.minNumberOf(first, second);
System.out.println("λ μ μ€ μ΅μκ°μ : " + min);
/* 2. static λ©μλμΈ κ²½μ° */
/* λ€λ₯Έ ν΄λμ€μ μμ±ν static λ©μλμ κ²½μ° νΈμΆν λ ν΄λμ€λͺ
μ λ°λμ κΈ°μ ν΄μΌ νλ€.
* ν΄λμ€λͺ
.λ©μλλͺ
();
* */
//int max = maxNumberOf(first, second); //ν΄λμ€λͺ
μ μλ΅νλ©΄ μλ¬ λ°μνλ€.
int max = Calculator.maxNumberOf(first, second);
System.out.println("λ μ μ€ μ΅λκ°μ : " + max);
/* μ£Όμ!
* static λ©μλλ non-static λ©μλμ²λΌ νΈμΆμ κ°λ₯νλ€.
* νμ§λ§ κΆμ₯νμ§ μλλ€.
* μ΄λ―Έ λ©λͺ¨λ¦¬μ λ‘λ©λμ΄ μλ static λ©μλλ μ¬λ¬ κ°μ²΄κ° 곡μ νκ² λλ€.
* κ·Έ λ κ°μ²΄λ‘ μ κ·Όνκ² λλ©΄ μΈμ€ν΄μ€κ° κ°μ§ κ°μΌλ‘ 곡μ λ κ°μ μμμΉ λͺ»νλ λμμ μ λ°ν μ μκΈ° λλ¬Έμ
* μ¬μ©μ μ νν΄ λ¬λΌλ κ²½κ³ μ΄λ€. μμ€ν
μ΄ λ³΅μ‘ν΄μ§ μλ‘ μ΄λ° μλ¬λ₯Ό μ°ΎκΈ° νλ€μ΄μ§κ² λλ€.
* */
int max2 = calc.maxNumberOf(first, second);
System.out.println("λ μ μ€ λ ν° κ°μ : " + max2); //νμ§λ§ μ μμ μΌλ‘ μ€νμ κ°λ₯νλ€.
}
}
π ν¨ν€μ§(Package)
β ν¨ν€μ§ κ°μ
β ν¨ν€μ§λ?
ν¨ν€μ§λ μλ‘ κ΄λ ¨ μλ ν΄λμ€ λλ μΈν°νμ΄μ€ λ±μ λͺ¨μ νλμ λ¬Άμ(κ·Έλ£Ή)μΌλ‘ λ¨μλ₯Ό ꡬμ±νλ κ²μ λ§νλ€.
β ν¨ν€μ§μ μ μΈ
package ν¨ν€μ§λͺ
;
- ν΄λμ€λ μΈν°νμ΄μ€μ μμ€νμΌ( .java )μ μ΅μλ¨μ μ μΈλμ΄μΌ νλ€.
- ν΄λμ€ λͺ λͺ κ·μΉκ³Ό λ€λ₯΄κ² μλ¬Έμλ‘λ§ μμ±νλ κ²μ μμΉμΌλ‘ νλ€.
- ν¨ν€μ§ λͺ μ μ§μ νμ§ μμΌλ©΄ μλμ μΌλ‘ μ΄λ¦ μλ ν¨ν€μ§μ μνκ² λλ€.
β ν¨ν€μ§ νμΈ
β ν¨ν€μ§ νμΈ
package ac.kr.samhyook.calculator;
public class Calculator {
...
}
package ac.kr.samhyook.method;
public class Application {
public static void main(String[] args) {
// μ¬μ©ν΄μΌνλ ν΄λμ€μ ν¨ν€μ§κ° λ€λ₯Έ κ²½μ° ν ν΄λμ€ μ΄λ¦μ μ¬μ©ν΄μΌ νλ€.
ac.kr.samhyook.method.Calculator cal = new ac.kr.samhyook.method.Calculator();
/* non-static λ©μλμ κ²½μ° */
int min = cal.minNumberOf(30, 20);
System.out.println("30κ³Ό 20μ€ λ μμ κ°μ : " + min);
/* static λ©μλμ κ²½μ° */
int max = ac.kr.samhyook.method.Calculator.maxNumberOf(30, 20);
System.out.println("30κ³Ό 20μ€ λ ν° κ°μ : " + max);
}
π μν¬νΈ(Import)
β μν¬νΈ κ°μ
β μν¬νΈλ?
μλ‘ λ€λ₯Έ ν¨ν€μ§μ μ‘΄μ¬νλ ν΄λμ€λ₯Ό μ¬μ©νλ κ²½μ° ν¨ν€μ§λͺ μ ν¬ν¨ν ν ν΄λμ€ μ΄λ¦μ μ¬μ©ν΄μΌ νλ€.
νμ§λ§ λ§€λ² λ€λ₯Έ ν΄λμ€μ ν¨ν€μ§λͺ κΉμ§ κΈ°μ νκΈ°μλ λ²κ±°λ‘λ€.
κ·Έλμ ν¨ν€μ§λͺ μ μλ΅νκ³ μ¬μ©ν μ μλλ‘ ν κ΅¬λ¬Έμ΄ import ꡬ문μ΄λ€.
β μν¬νΈ μ μΈ
package ν¨ν€μ§λͺ
;
import ν¨ν€μ§λͺ
.*;
import ν¨ν€μ§λͺ
.ν΄λμ€λͺ
;
import static ν¨ν€μ§λͺ
.ν΄λμ€λͺ
;
...ν΄λμ€
- import λ¬Έμ μ¬λ¬ κ° λͺ μν μ μλ€.
- import λ package μ μΈλ¬Έκ³Ό class μ μΈλ¬Έ μ¬μ΄μ μμ±νλ©° μ΄λ ν ν¨ν€μ§ λ΄μ μλ ν΄λμ€λ₯Ό μ¬μ©ν κ²μΈμ§μ λν΄ λ―Έλ¦¬ μ μΈνλ ν¨κ³Όλ₯Ό κ°μ§λ€.
- import λ¬Έμ μμ€νμΌ( .java ) μμ package λ¬Έκ³Ό ν΄λμ€ μ μΈλ¬Έ μ¬μ΄μ λͺ μνλ€.
- static import λ¬Έμ static λ©μλλ₯Ό νΈμΆν λ μ¬μ©νλ€.
β μν¬νΈ νμΈ
β μν¬νΈ νμΈ
package ac.kr.samhyook.calculator;
public class Calculator {
...
}
package ac.kr.samhyook.method;
/* μ¬μ©νλ €λ ν΄λμ€κΉμ§λ₯Ό μμ±ν΄μΌ νλ€. */
import ac.kr.samhyook.calculator.Calculator;
/* static importμ κ²½μ° μ¬μ©νλ €λ static methodκΉμ§ μ λΆ μ¨μ€μΌ νλ€. */
import static ac.kr.samhyook.calculator.Calculator.maxNumberOf
public class Application {
public static void main(String[] args) {
Calculator cal = new Calculator();
/* non-static λ©μλμ κ²½μ° */
int min = cal.minNumberOf(30, 20);
System.out.println("30κ³Ό 20μ€ λ μμ κ°μ : " + min);
/* static λ©μλλ₯Ό static μν¬νΈ ν κ²½μ° ν΄λμ€λͺ
λ μλ΅νκ³ μ¬μ©ν μ μλ€. */
int max = maxNumberOf(30, 20);
System.out.println("30κ³Ό 20μ€ λ ν° κ°μ : " + max);
}
}
π API
β API κ°μ
β API λ?
Application Programming Interface(API)λ μμ©νλ‘κ·Έλ¨μμ μ¬μ©ν μ μλλ‘,
μ΄μ체μ λ νλ‘κ·Έλλ° μΈμ΄κ° μ 곡νλ κΈ°λ₯μ μ μ΄ν μ μλλ‘ λ§λ μΈν°νμ΄μ€λ₯Ό λ»νλ€.
- μ½κ² λ§ν΄ μ°λ¦¬κ° ꡬνν μ μκ±°λ ꡬννκΈ° λ²κ±°λ‘μ΄ κΈ°λ₯λ€μ JDKλ₯Ό μ€μΉνλ©΄ μ¬μ©ν μ μλλ‘ μ 곡ν μμ€μ½λ(ν΄λμ€λ μΈν°νμ΄μ€)λ€μ μλ―Ένλ€.
- λ μ½κ² λ§ν΄ λκ° μμ±ν΄ λμ μμ€μ½λμ΄λ κ°μ Έλ€ μ°λ λ°©λ²μ μ κ³΅ν΄ μ£Όλ κ²μ΄λ€.
- λͺ¨λ μ½λλ₯Ό μ°λ¦¬κ° λ€ μΈμΈ μ μμΌλ API λ¬Έμλ₯Ό λ³λλ‘ μ 곡ν΄μ£Όκ³ μλ€.
β Math ν΄λμ€
β Math ν΄λμ€λ?
Math ν΄λμ€λ μνμμ μμ£Ό μ¬μ©νλ μμλ€κ³Ό ν¨μ λ€μ 미리 ꡬνν΄ λμ ν΄λμ€μ΄λ€.
APIλ¬Έμλ₯Ό νμΈν΄ 보μ.(https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Math.html)
Math ν΄λμ€λ static memberλ‘λ§ κ΅¬μ±λμ΄ μλ€.
μ¦, Math. λ©μλ()μ κ°μ΄ Math ν΄λμ€μμ μ 곡νλ APIλ₯Ό μ¬μ©ν μ μλ€.
β Math ν΄λμ€ νμΈ
1. java.lang.Math ν΄λμ€μμ μ 곡νλ API νμΈ
public static void main(String[] args) {
/* μ λκ° μΆλ ₯ */
/* ν΄λμ€μ full-nameμ λ€ μ μ κ²½μ° */
System.out.println("-7μ μ λκ° : " + (java.lang.Math.abs(-7)));
/* java.langν¨ν€μ§λ import νμ§ μκ³ μ¬μ©ν μ μλλ‘ ν΄ λμλ€.
* μ»΄νμΌλ¬κ° import java.lang.*; μ΄ μ½λλ₯Ό μλμΌλ‘ μΆκ°ν΄μ μ»΄νμΌμ νκΈ° λλ¬Έμ΄λ€.
* */
System.out.println("-1.25μ μ λκ° : " + (Math.abs(-1.25)));
/* μ°λ¦¬κ° Calculatorμ λ§λ minκ³Ό maxλ₯Ό ꡬνλ κΈ°λ₯λ μ΄λ―Έ μ 곡νκ³ μλ€. */
System.out.println("10κ³Ό 20μ€ λ μμ κ²μ : " + Math.min(10, 20));
System.out.println("20κ³Ό 30μ€ λ ν° κ²μ : " + Math.max(20, 30));
/* μνμ μΌλ‘ λ§μ΄ μ¬μ©νλ κ³ μ λ κ°λ€λ μ΄λ―Έ Math μμ μ μλ κ²μ΄ μλ€.
* νλ λΌλ κ²μ μ΄μ©ν κ²μΈλ° μ΄ λΆλΆμ λμ€μ λ€λ£¨κ² λλ κ±±μ νμ§ λ§μ
* */
System.out.println("μμ£Όμ¨ : " + Math.PI); //μμ λλ λ μ΄λ°κ±° κ³μ°ν λ 미리 μ μλ κ°μ΄λ κ·Έλ₯ λΆλ¬λ€ μ°λ©΄ λλ€.
/* λμλ₯Ό λ°μμν€λ κ²λ μλ€
* 0λΆν° 1 μ κΉμ§μ μ€μ ννμ λμλ₯Ό λ°μμν¨λ€.
* μλ νΈμΆν λλ§λ€ λ€λ₯Έ κ°μ κ°μ§λ€.
* */
System.out.println("λμ λ°μ : " + Math.random());
}
2. java.lang.Math ν΄λμ€μμ μ 곡νλ λμ νμ©
public static void main(String[] args) {
/* λμμ νμ© */
/* Math.random()μ μ΄μ©ν΄ λ°μν λμλ 0λΆν° 1μ κΉμ§μ μ€μ λ²μμ λμκ°μ λ°ννλ€.
* μνλ λ²μμ λμλ₯Ό ꡬνλ 곡μ
*(int) (Math.random * ꡬνλ €λ λμμ κ°―μ) + ꡬνλ €λ λμμ μ΅μκ°
*/
/* 0 ~ 9κΉμ§μ λμ λ°μ */
int random1 = (int) (Math.random() * 10);
System.out.println("0 λΆν° 9 μ¬μ΄μ λμ : " + random1);
/* 1 ~ 10κΉμ§μ λμ λ°μ */
int random2 = (int) (Math.random() * 10) + 1;
System.out.println("1 λΆν° 10 μ¬μ΄μ λμ : " + random2);
/* 10 ~ 15κΉμ§μ λμ λ°μ */
int random3 = (int) (Math.random() * 6) + 10;
System.out.println("10 λΆν° 15 μ¬μ΄μ λμ : " + random3);
/* -128 ~ 127κΉμ§μ λμ λ°μ */
//int random4 = (int) (Math.random() * 256) + (-128);
int random4 = (int) (Math.random() * 256) - 128;
System.out.println("-128 λΆν° 127κΉμ§μ λμ λ°μ : " + random4);
}
3. java.util.Randomμ μ΄μ©ν λμμ νμ©
public static void main(String[] args) {
/* java.util.Random ν΄λμ€ */
/* java.util.Random ν΄λμ€μ nextInt() λ©μλλ₯Ό μ΄μ©ν λμ λ°μ
* nextInt(int bound) : 0λΆν° λ§€κ°λ³μλ‘ μ λ¬λ°μ μ μ λ²μκΉμ§μ λμλ₯Ό λ°μμμΌμ μ μ ννλ‘ λ°ν */
/* μνλ λ²μμ λμλ₯Ό ꡬνλ 곡μ
* random.nextInt(ꡬνλ €λ λμμ κ°―μ) + ꡬνλ €λ λμμ μ΅μκ°
* */
Random random = new Random();
/* 0 λΆν° 9κΉμ§ λμ λ°μ */
int randomNumber1 = random.nextInt(10);
System.out.println("0 λΆν° 9 κΉμ§μ λμ : " + randomNumber1);
/* 1λΆν° 10κΉμ§ λμ λ°μ */
int randomNumber2 = random.nextInt(10) + 1;
System.out.println("1 λΆν° 10 κΉμ§μ λμ : " + randomNumber2);
/* 20 λΆν° 45κΉμ§μ λμ λ°μ */
int randomNumber3 = random.nextInt(26) + 20;
System.out.println("20 λΆν° 45 κΉμ§μ λμ : " + randomNumber3);
/* -128 λΆν° 127κΉμ§μ λμ λ°μ */
//int randomNumber4 = random.nextInt(256) - 128;
int randomNumber4 = new Random().nextInt(256) - 128; //κ°μ²΄λ₯Ό μμ±νμλ§μ λ°λ‘ λ©μλ νΈμΆλ ν μ μλ€.
System.out.println("-128 λΆν° 127 κΉμ§μ λμ : " + randomNumber4);
}
β Scanner ν΄λμ€
β μ€μΊλ(Scanner) λ?
μ€μΊλ(Scanner)λ java.util.Scanner ν΄λμ€λ₯Ό λ§νλ€.
μ΄ ν΄λμ€λ μ½μ λ°μ΄νΈλ₯Ό λ¬Έμ, μ«μ, μ€μ, boolean, λ¬Έμμ΄ λ± λ€μν νμ μΌλ‘ λ³ννμ¬ λ¦¬ν΄νλ ν΄λμ€μ΄λ€.
- Scannerλ “ν ν° λ¨μ”λ‘ λ°μ΄ν°λ₯Ό μ½μ΄ μ¨λ€. (ν ν° : 곡백문μ - Spacebar/Tab/Enterλ‘ κ΅¬λΆλλ μμ)
β μ€μΊλμμ μμ£Ό μ°μ΄λ λ©μλ
λ©μλ | κΈ°λ₯ |
next() | StringμΌλ‘ μ½μ΄μ¨λ€.(λμ΄μ°κΈ° μ΄νλ μ½μ§ μμ) |
nextLine() | StringμΌλ‘ μ½μ΄μ¨λ€.(λμ΄μ°κΈ° ν¬ν¨ ν μ€μ μ½λλ€. Enter μ΄μ κΉμ§) |
nextInt() | intλ‘ μ½μ΄μ¨λ€. |
nextBoolean() | booleanμΌλ‘ μ½μ΄μ¨λ€. |
nextByte() | byteλ‘ μ½μ΄μ¨λ€. |
nextShort() | shortλ‘ μ½μ΄μ¨λ€. |
nextLong() | longμ μ½μ΄μ¨λ€. |
nextFloat() | floatλ‘ μ½μ΄μ¨λ€. |
nextDouble() | doubleλ‘ μ½μ΄μ¨λ€. |
β μ€μΊλ νμΈ
1. Scannerλ₯Ό μ΄μ©ν΄ λ€μν κ° μ λ ₯ ν μ€νΈ
public static void main(String[] args) {
/* java.util.Scannerλ₯Ό μ΄μ©ν λ€μν μλ£ν κ° μ
λ ₯ λ°κΈ° */
/* μ½μ νλ©΄μ κ°μ μ
λ ₯ λ°μ μΆλ ₯ν΄ λ³΄κΈ°
* μ΄λ° μ΄λ €μ΄ κΈ°λ₯ λν 미리 JDKλ₯Ό μ€μΉνλ©΄ μμ½κ² μ¬μ©ν μ μλλ‘ κ΅¬νν΄ λμλ€.
* */
/* 1. Scanner κ°μ²΄ μμ± */
/* 1-1. μλ μ΄λ κ² Scanner κ°μ²΄λ₯Ό λ§λ€μ΄μΌ ν¨ */
//java.util.Scanner sc = new java.util.Scanner(java.lang.System.in);
/* 1-2. νμ§λ§ java.langμ ν¨ν€μ§μ΄λ¦ μλ΅ κ°λ₯νλ€ */
//java.util.Scanner sc = new java.util.Scanner(System.in);
/* 1-3. λ€λ₯Έ ν¨ν€μ§μ μλ ν΄λμ€ μ¬μ© μ ν¨ν€μ§λͺ
μλ΅νκΈ° μν΄ μ¬μ©νλ ꡬ문μ λ°λ‘ importμ΄λ€. (import) */
Scanner sc = new Scanner(System.in); //java.util.Scanner importνλ©΄ μ¬μ© μ€λΉ λ
/* 2. μλ£νλ³ κ° μ
λ ₯λ°κΈ° */
/* μ
λ ₯λ°μ λ μλ΄λ¬Έκ΅¬λ λ³λλ‘ μΆλ ₯ν΄μ£Όμ§ μμΌλ μ°λ¦¬κ° μμ±ν΄μ€μΌ νλ€. */
/* printμ printlnμ μ€ λ°κΏ μ°¨μ΄ μ΄λ€.
* λ€μ μ€μ μ
λ ₯μ λκΈ°μν€λ κ²μ΄ μλκ³ μ€λ°κΏνμ§ μκ³ μ
λ ₯λ°κ² νκΈ° μν΄ printλ₯Ό μ¬μ©νλ€
* */
/* 2-1. λ¬Έμμ΄ μ
λ ₯ λ°κΈ° */
/* nextLine() : μ
λ ₯λ°μ κ°μ λ¬Έμμ΄λ‘ λ°νν΄μ€λ€ */
System.out.print("μ΄λ¦μ μ
λ ₯νμΈμ : ");
String name = sc.nextLine();
System.out.println("μ
λ ₯νμ μ΄λ¦μ " + name + "μ
λλ€.");
/* 2-2. μ μν κ° μ
λ ₯ λ°κΈ° */
/* nextInt() : μ
λ ₯λ°μ κ°μ intνμΌλ‘ λ°ννλ€. nextByte()/nextShort()λ μλ΅νλ€.
* μ«μκ° μλ κ°μ μ
λ ₯νκ² λλ©΄ InputMismatchExceptionμ΄ λ°μνλ€.
* int λ²μλ₯Ό μ΄κ³Όν κ°μ μ
λ ₯λ°κ² λλ©΄ μμ InputMismatchExceptionμ΄ λ°μνλ€.
* Exceptionμ λμ€μ λ€μ λ€λ£¨κ² λκ² μ§λ§ μ½κ² νννμλ©΄ μλ¬ κ°μ κ°λ
μ΄λΌκ³ μκ°νμ.
* */
System.out.print("λμ΄λ₯Ό μ
λ ₯νμΈμ : ");
int age = sc.nextInt();
System.out.println("μ
λ ₯νμ λμ΄λ " + age + "μ
λλ€.");
/* nextLong() : μ
λ ₯λ°μ κ°μ long νμΌλ‘ λ°ννλ€.
* nextIntμ Exceptionμ΄ λ°μνλ μ΄μ λ λμΌνλ€.
* */
System.out.print("κΈμ‘μ μ
λ ₯ν΄μ£ΌμΈμ : "); //λ§μ½ μλ΄ κ΅¬λ¬Έμ μμ±νμ§ μμΌλ©΄ κ·Έλ₯ λ©μΆκ² μ²λΌ 보μΈλ€. μ¬μ€ κΈ°λ€λ¦¬λ μ€μ΄λ€.
long money = sc.nextLong();
System.out.println("μ
λ ₯νμ κΈμ‘μ " + money + "μ μ
λλ€.");
/* 2-3. μ€μν κ° μ
λ ₯ λ°κΈ° */
/* nextFloat() : μ
λ ₯λ°μ κ°μ float νμΌλ‘ λ°ννλ€. */
/* μ μ ννλ‘ μ
λ ₯λ°μΌλ©΄ μ€μλ‘ λ³ν ν μ μ λμ
* κΈΈμ΄λ₯Ό κΈΈκ² μ
λ ₯νλ©΄ μμμ 8μ§Έ μ리κΉμ§λ§ νν
* μ«μννμ κ°μ΄ μλ κ²½μ° InputMismatchException λ°μ
* */
System.out.print("ν€λ₯Ό μ
λ ₯ν΄μ£ΌμΈμ : ");
float height = sc.nextFloat();
System.out.println("μ
λ ₯νμ ν€λ " + height + "cm μ
λλ€.");
/* nextDouble() : μ
λ ₯λ°μ κ°μ double νμΌλ‘ λ°ννλ€. */
/* μ μ ννλ‘ μ
λ ₯λ°μΌλ©΄ μ€μλ‘ λ³ν ν μ μ λμ
* κΈΈμ΄λ₯Ό κΈΈκ² μ
λ ₯νλ©΄ μμμ 17μ§Έ μ리κΉμ§λ§ νν
* μ«μννμ κ°μ΄ μλ κ²½μ° InputMismatchException λ°μ
* */
System.out.print("μνλ μ€μλ₯Ό μ
λ ₯νμΈμ : ");
double number = sc.nextDouble();
System.out.println("μ
λ ₯νμ μ€μλ " + number + "μ
λλ€.");
/* 2-4. λ
Όλ¦¬ν κ° μ
λ ₯λ°κΈ° */
/* nextBoolean() : μ
λ ₯λ°μ κ°μ booleanνμΌλ‘ λ°ννλ€.
* true or false μΈμ λ€λ₯Έ κ°μ μ
λ ₯νκ² λλ©΄ InputMismatchException λ°μν¨
* */
System.out.print("μ°Έκ³Ό κ±°μ§ μ€μ ν κ°μ§λ₯Ό true or falseλ‘ μ
λ ₯ν΄μ£ΌμΈμ : ");
boolean isTrue = sc.nextBoolean();
System.out.println("μ
λ ₯νμ λ
Όλ¦¬ κ°μ " + isTrue + "μ
λλ€.");
/* 2-5. λ¬Έμν κ° μ
λ ₯λ°κΈ° */
/* μμ½κ²λ λ¬Έμλ₯Ό μ§μ μ
λ ₯ λ°λ κΈ°λ₯μ μ 곡νμ§λ μλλ€.
* λ°λΌμ λ¬Έμμ΄λ‘ μ
λ ₯μ λ°κ³ , μ
λ ₯λ°μ λ¬Έμμμ μνλ μλ²μ§Έ λ¬Έμλ₯Ό λΆλ¦¬ν΄μ μ¬μ©ν΄μΌ νλ€.
* java.lang.Stringμ charAt(int index)λ₯Ό μ¬μ©νλ€.
* indexλ₯Ό μ μνμΌλ‘ μ
λ ₯νλ©΄ λ¬Έμμ΄μμ ν΄λΉ μΈλ±μ€μ μλ ν λ¬Έμλ₯Ό λ¬Έμ νμΌλ‘ λ°νν΄μ£Όλ κΈ°λ₯μ νλ€.
*
* indexλ 0λΆν° μμνλ μ«μ 체κ³μ΄λ©° μ»΄ν¨ν°μμ μ£Όλ‘ μ¬μ©λλ λ°©μμ΄λ€.
* λ§μ½ μ‘΄μ¬νμ§ μλ μΈλ±μ€λ₯Ό μ
λ ₯νκ² λλ©΄ IndexOutOfBoundsExceptionμ΄ λ°μνλ€.
* */
sc.nextLine();
System.out.print("μ무 λ¬Έμλ μ
λ ₯ ν΄μ£ΌμΈμ : ");
char ch = sc.nextLine().charAt(0);
System.out.println("μ
λ ₯νμ λ¬Έμλ " + ch + "μ
λλ€.");
}
2. nextLine()κ³Ό next() ν μ€νΈ
public static void main(String[] args) {
/* Scannerμ nextLine()κ³Ό next() */
/* nextLine() : 곡백μ ν¬ν¨ν ν μ€μ μ
λ ₯μ μν κ°νλ¬Έμ μ κΉμ§ μ½μ΄μ λ¬Έμμ΄λ‘ λ°ννλ€. (곡백문μ ν¬ν¨)
* next() : 곡백문μλ κ°νλ¬Έμ μ κΉμ§λ₯Ό μ½μ΄μ λ¬Έμμ΄λ‘ λ°ννλ€. (곡백문μ ν¬ν¨νμ§ μμ)
* */
/* 1. Scanner κ°μ²΄ μμ± */
Scanner sc = new Scanner(System.in);
/* 2. λ¬Έμμ΄ μ
λ ₯ */
/* 2-1. nextLine() */
System.out.print("μΈμ¬λ§μ μ
λ ₯ν΄μ£ΌμΈμ : ");
String greeting1 = sc.nextLine();
System.out.println(greeting1);
/* 2-2. next() */
System.out.print("μΈμ¬λ§μ μ
λ ₯ν΄μ£ΌμΈμ : ");
String greeting2 = sc.next();
System.out.println(greeting2);
}
3. Scanner μ¬μ© μ μ£Όμμ¬ν ν μ€νΈ (1)
public static void main(String[] args) {
/* μ€μΊλ μ£Όμ μ¬ν */
/* μ€μΊλμ next λ©μλλ€μ μ
λ ₯ν λ΄μ©μ λ²νΌλ‘λΆν° ν ν°λ¨μλ‘ λΆλ¦¬ν΄μ μ½μ΄μ¨λ€.
* κ·Έλμ ν¬κ² λ κ°μ§ μ¬νμ μ£Όμν΄μΌ νλ€.
* 1. next()λ‘ λ¬Έμμ΄ μ
λ ₯ λ°μ ν μ μ, μ€μ, λ
Όλ¦¬κ° μ
λ ₯ λ°μ λ
* 2. μ μ, μ€μ, λ
Όλ¦¬κ° μ
λ ₯ ν next()λ‘ λ¬Έμμ΄ μ
λ ₯λ°μ λ
* */
/* μ€μΊλ κ°μ²΄ μμ± */
Scanner sc = new Scanner(System.in);
/* 1. next()λ‘ λ¬Έμμ΄ μ
λ ₯ λ°μ ν μ μ, μ€μ, λ
Όλ¦¬κ° μ
λ ₯ λ°μ λ */
System.out.print("λ¬Έμμ΄μ μ
λ ₯ν΄μ£ΌμΈμ : ");
String str1 = sc.next(); //곡백μ΄λ κ°νλ¬Έμ μ κΉμ§λ₯Ό μ½μ΄μ¨λ€.
System.out.println("str1 : " + str1);
System.out.print("μ«μλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ : ");
int num1 = sc.nextInt(); //μ μ κ°μ μ½μ΄μ¨λ€.
System.out.println("num1 : " + num1);
}
βΌ μ€ν κ²°κ³Ό
λ¬Έμμ΄μ μ
λ ₯ν΄μ£ΌμΈμ : μλ
str1 : μλ
μ«μλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ : 123
num1 : 123
λ¬Έμμ΄μ μ
λ ₯ν΄μ£ΌμΈμ : μλ
νμΈμ λ°κ°μ΅λλ€
str1 : μλ
νμΈμ
μ«μλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ : Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at com.ohgiraffers.method.Application.main(Application.java:25)
μ¬κΈ°κΉμ§ μμ±νκ³ λλ©΄ μ½λ μμ± μμ(compile μ)λ λ¬Έμ λμ§ μλλ€.
μ²μ μ€νν λ λ¬Έμμ΄μ "μλ "μ΄λΌκ³ μ λ ₯νκ³ μ μλ₯Ό μ λ ₯νλ©΄ μ μμ μΌλ‘ λμνλ€.
νμ§λ§, "μλ νμΈμ λ°κ°μ΅λλ€" μ λ ₯νλ©΄ λμ μ(Runtime) μ«μλ₯Ό μ λ ₯νκΈ°λ μ μ InputMismatchExceptionμ΄ λ°μνλ€.
ν΄λΉ Exceptionμ΄ μΈμ λ°μνμκΉ? μ μλ₯Ό μ λ ₯ν΄μΌ νλλ° μ«μλ₯Ό μ λ ₯νμ§ μμ κ²½μ°μλ€.
κ·Όλ° μ무κ²λ μ λ ₯ μ νλλ° μ λ°μνμκΉ?
"μλ νμΈμ λ°κ°μ΅λλ€" ← μ λ ₯ μ 곡백μ κΈ°μ€μΌλ‘ λ κ°μ ν ν° "μλ νμΈμ"μ "λ°κ°μ΅λλ€"λ‘ λΆλ¦¬κ° λλ€. next()λ λ€μ ν ν°μΈ "μλ νμΈμ"λ₯Ό μ½μκ³ , nextInt()λ λ€μ ν ν°μ μ μλ‘ μ½μ΄μΌ νλλ° "λ°κ°μ΅λλ€"κ° λμλ€. μ μλ₯Ό μ λ ₯ν΄μΌ νλλ° "λ°κ°μ΅λλ€"λ₯Ό μ½μΌλ©΄ λΉμ°ν InputMismatchExceptionμ΄ λ°μνλ€.
κ³΅λ°±μ΄ μλ λ¬Έμμ΄μ λ°μ κ±°λ©΄ nextLine()μ μ΄μ©νμ.
νΉμ μ λ ₯λ°μ λ²νΌλ₯Ό μ€ λ¨μλ‘ ν ν°μ λΆλ¦¬νκΈ° λλ¬Έμ ν΄λΉ λΌμΈμ ν ν°μ λ€ μ½κ³ λ€μ μ€λ‘ μ΄λμν€κ³ μΆμ λλ
ν λΌμΈμ λͺ¨λ ν ν°μ μ½μ΄μ€λ sc.nextLine(); νΈμΆμ μ€κ°μ ν λ² λ£μ΄μ€λ ν΄κ²°μ λλ€.
4. Scanner μ¬μ© μ μ£Όμμ¬ν ν μ€νΈ (2)
public static void main(String[] args) {
/* μ€μΊλ μ£Όμ μ¬ν */
/* μ€μΊλμ next λ©μλλ€μ μ
λ ₯ν λ΄μ©μ λ²νΌλ‘λΆν° ν ν°λ¨μλ‘ λΆλ¦¬ν΄μ μ½μ΄μ¨λ€.
* κ·Έλμ ν¬κ² λ κ°μ§ μ¬νμ μ£Όμν΄μΌ νλ€.
* 1. next()λ‘ λ¬Έμμ΄ μ
λ ₯ λ°μ ν μ μ, μ€μ, λ
Όλ¦¬κ° μ
λ ₯ λ°μ λ
* 2. μ μ, μ€μ, λ
Όλ¦¬κ° μ
λ ₯ ν nextLine()λ‘ λ¬Έμμ΄ μ
λ ₯λ°μ λ
* */
/* μ€μΊλ κ°μ²΄ μμ± */
Scanner sc = new Scanner(System.in);
/* 2. μ μ, μ€μ, λ
Όλ¦¬κ° μ
λ ₯ ν nextLine()λ‘ λ¬Έμμ΄ μ
λ ₯λ°μ λ */
System.out.print("λ€μ μ«μλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ : ");
int num2 = sc.nextInt();
System.out.println("num2 : " + num2);
System.out.print("κ³΅λ°±μ΄ μλ λ¬Έμμ΄μ νλ μ
λ ₯ν΄μ£ΌμΈμ : ");
String str2 = sc.nextLine();
System.out.println("str2 : " + str2);
}
βΌ μ€ν κ²°κ³Ό
λ€μ μ«μλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ : 12
num2 : 12
κ³΅λ°±μ΄ μλ λ¬Έμμ΄μ νλ μ
λ ₯ν΄μ£ΌμΈμ : str2 :
μ€νν΄ λ³΄λ©΄ λ λ²μ§Έ μ λ ₯μ λ°κΈ° μ μ λ°λ‘ λ€μ μ€μ μΆλ ₯ν΄ λ²λ¦°λ€.
μμμ λ¨κΈ΄ κ°νμ nextLine()μ΄ μ½κ³ λμ΄κ°μ μ λ ₯ μ νλ‘κ·Έλ¨μ΄ μ’ λ£λλ€.
ν΄κ²°νλ λ°©λ²μ κ°νμ λ°μμ€ nextLine()μ ν μ€ λ λͺ μν΄ μ€μΌλ‘ λ²νΌλ₯Ό λΉμ°λ©΄ λλ€.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("λ€μ μ«μλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ : ");
int num2 = sc.nextInt();
System.out.println("num2 : " + num2);
System.out.print("κ³΅λ°±μ΄ μλ λ¬Έμμ΄μ νλ μ
λ ₯ν΄μ£ΌμΈμ : ");
sc.nextLine(); // μ΄ λΆλΆμ μΆκ°ν΄μ€λ€.
String str2 = sc.nextLine();
System.out.println("str2 : " + str2);
}
βΌ μ€ν κ²°κ³Ό
λ€μ μ«μλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ : 13
num2 : 13
κ³΅λ°±μ΄ μλ λ¬Έμμ΄μ νλ μ
λ ₯ν΄μ£ΌμΈμ : qwerty
str2 : qwerty