๋ชฉ์ฐจ
์๋ฐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ
Overloading
- ํ๋์ class ๋ด๋ถ์ ์ด๋ฆ์ด ๊ฐ์ method๊ฐ ์ฌ๋ฌ ๊ฐ ์๋ ๊ฒ
- ํ๋์ method ์ด๋ฆ์ ๊ฐ์ง๊ณ ๊ธฐ๋ฅ์ ๋ค๋ฅด๊ฒ ๊ตฌํ
- ์์ฑ ๊ท์น
- modifier(์ ๊ทผ ์ ํ์)๋ ๊ฐ์๋ ๋ฌ๋ผ๋ ์๊ด ์์
- returnType ๊ฐ์๋ ๋ฌ๋ผ๋ ์๊ด ์์
- method ์ด๋ฆ์ ๋ฐ๋์ ๊ฐ์์ผ ํจ!
- ๋งค๊ฐ๋ณ์๋ ์์ or ํ์ or ๊ฐ์ ์ ์ค ํ๋๋ ๋ฌ๋ผ์ผ ํจ!
์) System.out.println()
public void println() public void println(boolean x) public void println(char x) public void println(int x) public void println(long x) public void println(float x) public void println(double x) public void println(char[] x) public void println(String x) public void println(Object x)
Parameter & Argument
Parameter(๋งค๊ฐ๋ณ์) : ํจ์ ์ ์ ๋ด๋ถ์ ๋ณ์
Argument(์ธ์) : ํจ์์ ์ค์ ๋ก ์ ๋ฌ๋๋ ๊ฐ
Variable Arguments
- ์ค์ฌ์ Varargs
- ์์์ ๊ฐ์์ ์ธ์๋ฅผ ๋ฐ์ ์ ์๋ค
- Vararg parameter must be the last in the list: ๋ง์ง๋ง ๋งค๊ฐ๋ณ์๋ก๋ง ์ ์ธ ๊ฐ๋ฅ
- syntax
- accessModifier methodName(datatype… arg) { // method body }
์) System.out.printf()
public PrintStream printf(String format, Object... args) public PrintStream printf(Locale l, String format, Object... args)
์ค์ต) ๋ค์ํ datatype์ varargs
/* ์ฝ๋ */ class VarargsTest { public void varargsTest(Object... objects) { System.out.println("objects = " + objects); System.out.println("objects.length = " + objects.length); for (Object obj : objects) { System.out.printf("%s %s", obj, obj.getClass()); System.out.println(); } System.out.println("----------"); } public void varargsLast(String s, int... ints) { System.out.println("s = " + s); for (int i : ints) { System.out.println("i = " + i); } } } public class VariableArgsExam { public static void main(String[] args) { VarargsTest t = new VarargsTest(); t.varargsTest(2); t.varargsTest(); t.varargsTest(1, 3, 5, 6, 7); t.varargsTest("aa", "bb", "cc"); t.varargsTest(2, 3, "aa"); t.varargsLast("ํ ์คํธ", 1, 2, 3); } }
/* ๊ฒฐ๊ณผ */ objects = [Ljava.lang.Object;@6aaa5eb0 // ์ธ์๋ฅผ ๋ฆฌ์คํธ๋ก ๋ฐ์์จ๋ค objects.length = 1 2 class java.lang.Integer ---------- objects = [Ljava.lang.Object;@62ee68d8 // 0๊ฐ ์ด์์ ์ธ์ objects.length = 0 ---------- objects = [Ljava.lang.Object;@735b5592 objects.length = 5 1 class java.lang.Integer 3 class java.lang.Integer 5 class java.lang.Integer 6 class java.lang.Integer 7 class java.lang.Integer ---------- objects = [Ljava.lang.Object;@58651fd0 // ์ ์บ์คํ objects.length = 3 aa class java.lang.String bb class java.lang.String cc class java.lang.String ---------- objects = [Ljava.lang.Object;@4520ebad // ์ฌ๋ฌ ๋ฐ์ดํฐํ์ ์ ํ๋ฒ์ ๋ฐ์ ์ ์๋ค objects.length = 3 2 class java.lang.Integer 3 class java.lang.Integer aa class java.lang.String ---------- s = ํ ์คํธ i = 1 // ๋ฐ๋์ ๋งค๊ฐ๋ณ์์ ๋ง์ง๋ง์! i = 2 i = 3 Process finished with exit code 0
Constructor
- ํน๋ณํ method
- ์์ฑ์๋ ๋ฉ์๋์ด๋ฏ๋ก ์คํ์์ญ์ ์์ธ๋ค.
- method ์ด๋ฆ์ ๋ฐ๋์ class ์ด๋ฆ๊ณผ ๊ฐ์์ผ ํ๋ค!
- returnType์ด ์๋ค
- โจ modifier ClassName( [ datatype variableName, ... ] ){ }
- ๊ฐ์ฒด๊ฐ ์์ฑ(new)๋๋ ์์ ์ ๋ฑ ํ ๋ฒ ์คํ๋๋ค
- ๋ชจ๋ ๋ฉ์๋๊ฐ ์์ฑ๋๊ณ ๊ฐ์ฒด ์์ฑ ์์ ์ ํ๋๋ง ํธ์ถํ ์ ์๋ค.
- java์ ๋ชจ๋ ๊ฐ์ฒด๋ ๋ฐ๋์ ํ ๊ฐ ์ด์์ ์์ฑ์๋ฅผ ๊ฐ๋๋ค
- Overloading์ด ๊ฐ๋ฅํ๋ค
- (์ด๋ฆ ๊ฐ์, ์ ํ์ ๋ค๋ฅผ์๋, ๋งค๊ฐ๋ณ์ ๊ฐ์.ํ์ .์์น ์ต์ ํ๋๋ ๋ค๋ฆ)
- ํ๋ก๊ทธ๋๋จธ๊ฐ ์์ฑ์๋ฅผ ํ๋๋ ์์ฑํ์ง ์์ผ๋ฉด default ์์ฑ์๊ฐ ๋ง๋ค์ด์ง๋ค
- โจ modifier ClassName( ){ }
๊ฐ์ฒด๊ฐ ์์ฑ๋๋ ์์ ์ ์ผ์ด๋๋ ์ผ
ClassName c = new ClassName(datatype d, ...);
- ์ ์ญ๋ณ์๋ฅผ 0์ ์คํ๋ ๊ฐ์ผ๋ก ์ด๊ธฐํ ex) int i; ⇒ 0
- ์ ์ญ๋ณ์๋ฅผ ๋ช ์์ ์ผ๋ก ์ด๊ธฐํ(ํ๋ก๊ทธ๋๋จธ๊ฐ ์ ๋ ฅํ ๊ฐ) ex) int i = 5;
- ์์ฑ์ ๊ตฌํ๋ถ ์คํ
๊ฐ์ ํด๋์ค ๋ด์ ๋ค๋ฅธ ์์ฑ์ ํธ์ถ
this([๊ฐ, ๊ฐ, ... ]); โจ ๋ฐ๋์ ์์ฑ์ ๊ตฌํ๋ถ ์ฒซ ๋ฒ์งธ ์ค์์๋ง ๊ฐ๋ฅ
์์ฑ์๋ฅผ ์ฌ์ฉํ๋ ์ํฉ
๊ฐ์ฒด๊ฐ ์์ฑ๋๋ ์์ ์ ๋ฑ ํ๋ฒ ํด์ผํ๋ ์ผ์ด ์์ ๊ฒฝ์ฐ
DB ๋ก๋, ์ด๊ธฐ ์ํ๋ฐ์ดํฐ ๋ก๋ฉ, ํ๊ฒฝ ์ธํ , ...
์ผ๋ฐ ๋ฉ์๋๋ ๊ฐ๋ฅํ์ง๋ง ์์ฑ์๋ ์๋ ํธ์ถ ์ด์
Array Size
Java์์ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๋๋ฆด ์ ์๋ค
๊ทธ๋์ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๋ฐ๋ก ๊ด๋ฆฌํ๋๊ฒ ๋ ์ ์ฐํ๋ค. ์ถ๊ฐํ๊ฑฐ๋ ๋ฃจํ ๋ ๋.
(์ฌ์ค ์๋ฃ๊ตฌ์กฐ ์ฐ๋ฉด ๋ฐ์ดํฐ ์กฐ์์ด ํจ์ฌ ํธํ๋ค!)
ex)
public class StudentService { Student[] students = new Student[10]; static int STUDENT_SIZE = 0; public StudentService() { students[STUDENT_SIZE++] = new Student("name1", 21, "seoul"); students[STUDENT_SIZE++] = new Student("name2", 22); students[STUDENT_SIZE++] = new Student("name3", 23, "seoul"); students[STUDENT_SIZE++] = new Student("name4", 24, "seoul"); students[STUDENT_SIZE++] = new Student("name5", 25); } /** * ์ด๋ฆ์ ํด๋นํ๋ ํ์์ ๋ณด ๊ฒ์ * * @param name ์ด๋ฆ์ ์ค๋ณต ์๋จ(pk) * @return ์ฐพ์ผ๋ฉด Student ๋ฆฌํด, ๋ชป์ฐพ์ผ๋ฉด null ๋ฆฌํด(์ฝ์) */ public Student selectByName(String name) { for (int i = 0; i < STUDENT_SIZE; i++) { // STUDNET_SIZE ๋งํผ ๋ฃจํ๋ฅผ ๋๋ค if (students[i].name.equals(name)) return students[i]; //String์ ์์, ๋ถ๋ณ ๊ฐ์ฒด. ์ฃผ์๊ฐ์ด ๋ค์ด์์. } return null; } }
์ฐธ๊ณ ๋งํฌ
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/PrintStream.html#println()
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/PrintStream.html#println():~:text=public PrintStream printf(String format%2C Object... args)
https://www.programiz.com/java-programming/varargs
https://velog.io/@zionedoha/JAVA-์ค๋ฒ-๋ผ์ด๋ฉ๊ณผ-ํ๋ณํ
http://www.ktword.co.kr/test/view/view.php?m_temp1=5482&id=1472