tip๐ก mac์ finder์์ ์จ๊น ํด๋ ๋ณด๊ธฐ command+shift+.
์๋ฐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ
Method
์์ฑ ๋ฐฉ๋ฒ
/* syntax */
modefiers returnType methodName(parameters) {
[return ๊ฐ์ง๊ณ ๋๊ฐ ๊ฐ;] // [์๋ต ๊ฐ๋ฅ]
}
- modefiers(0๊ฐ ์ด์) ์ ํ์
- access modefier ์ ๊ทผ ์ ํ์
- public ์ด๋์๋ ์๋ฌด๋
- protected ํด๋๊ฐ ๋ฌ๋ผ๋ ์์๊ด๊ณ๋ฉด ์ด๋์๋
- ( ) ๊ฐ์ ํจํค์ง๋ผ๋ฉด ์๋ฌด๋
- private ํ๋์ ๊ฐ์ฒด ์์์๋ง. ์ด๊ฑธ ๋ถ์ฌ์ฃผ๋ฉด ์๋=์บก์ํ
- ๊ธฐํ ์ ํ์
- static ๊ฐ์ฒด ์์ฑ ์์ด ์ ๊ทผ
- final ์์, ์ค๋ฒ๋ผ์ด๋ฉ ๊ธ์ง
- abstract
- syncronized
- default
- access modefier ์ ๊ทผ ์ ํ์
- returnType ๋ฐํ ๋ฐ์ดํฐํ์
- void ๋ฆฌํด ๊ฐ์ด ์๋ค
- primitive type ex) int, double, char
- object type ex) String, ์ฌ์ฉ์ ์ ์ ํด๋์ค ๋ฐ์ดํฐํ์
- ๋ฆฌํดํ ๊ฒ ๋ง๋ค๋ฉด Array, Collections
- methodName
- ์ด๋ฆ ๊ท์น camelCase
- parameter ๋งค๊ฐ๋ณ์
- datatype variableName
ํธ์ถ ๋ฐฉ๋ฒ
์์๋๋ก ํ์ธ
- static method
- ClassName.method([์ธ์, ...]);
- ex) int i = Integer.parseInt(stringVarible);
- ๋ ํผ๋ฐ์ค ๋ณ์๋ก ์ ๊ทผํ ํ์๊ฐ ์๋ค cf) 2. ์ผ๋ฐ์
- ์ฑ๊ธํค ํจํด์์ ์ค์ํ๊ฒ ์ฐ์
- ์ฌ์ฉ ์ฌ๋ถ์ ์๊ด ์์ด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋๋ฏ๋ก ๋ฌด๋ถ๋ณํ๊ฒ ์ฌ์ฉํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น
- static ์์์ non static์ ์ ๊ทผํ ์ ์์. this ์ธ ์ ์์. ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ค๋ฆ.
// java.lang public final class Math { public static double random() { // ๋๋ค ์ซ์ ๋ฐํ } } public final class Integer { public static int parseInt(String s) { // ์ ์ ๋ฐํ } public static String toString(int i) { // ๋ฌธ์์ด ๋ฐํ } }
- ๊ฐ์ ํด๋์ค ๋ด๋ถ method
- this.methodName([์ธ์, ...]);
- this ←→ super
- ๋ ←→ ๋ถ๋ชจ
- this.fieldName, this.methodName, this(๊ฐ, ...) ์์ฑ์ ๊ตฌํ๋ถ ์ฒซ๋ฒ์งธ ์ค์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ
- super.fieldName, super.methodName, super(๊ฐ, ...)
- ์ผ๋ฐ์
- ํธ์ถํ๋ ค๋ method๋ฅผ ๊ฐ์ธ๊ณ ์๋ class ์์ฑ(new)
- ClassName classVariable = new ClassName([์์ฑ์ ์ ๋ฌ๊ฐ]);
- ์์ฑ๋ ๊ฐ์ฒด ๋ณ์๋ฅผ ์ด์ฉํ์ฌ method๋ฅผ ํธ์ถ
- classVariable.methodName([์ธ์, ...]);
- ๋ฉค๋ฒ ๋ณ์๋ง์ ํ๋(์์ฑ)๋ผ๊ณ ํ๋ค ์ง์ญ ๋ณ์๋ ๊ทธ๋ฅ ๋ณ์
- ์๋ฐ์ ์์๊ณผ ๋ main method
- public void main์ ์ฐพ์์ ๊ฑฐ๊ธฐ์๋ถํฐ ์์๋จ.
- stack์ ์์.
- ํธ์ถํ๋ ค๋ method๋ฅผ ๊ฐ์ธ๊ณ ์๋ class ์์ฑ(new)
Java file
ํ ํ์ผ ์์
- ์ฌ๋ฌ ๊ฐ์ class ์์ฑ ๊ฐ๋ฅ
- public class๋ ํ๋๋ง ์์ฑ ๊ฐ๋ฅ
- public class๋ ๋ฐ๋์ ํ์ผ๋ช ๊ณผ ๊ฐ์์ผ ํ๋ค!
- public class ์์ main method ์์ฑ
- ์์ํ๋ ค๋ฉด main method๊ฐ ๋ฐ๋์ ํ์
- ์์ํ๋ ค๋ class์ ์ด๋ฆ์ผ๋ก ํ์ผ๋ช ์ ์ง์ ํ๊ณ ๊ทธ class ์์ main method ์์ฑ
- modefier๋ public or (default)
- ๋ชจ๋ Java ๊ฐ์ฒด๋ Object๋ฅผ ์์ ๋ฐ๋๋ค
์ฐ์ฐ์
+ ์ฐ์ ์ฐ์ฐ ๋๋ ๋ฌธ์์ด ๊ฒฐํฉ
5 + 2 -> 5(int)
"5" + 2 -> 52(String)
"2" + 5 -> 25(String)
"5" + "2" -> 52(String)
'5' + 2 -> 55(int)
'A' + 2 -> 67(int)
/* ์ฐ์ฐํ๋ ค๋ฉด ์ต์ํ 4bytes์ ๊ณต๊ฐ์ด ํ์ํ๋ค */
byte a=3, b=2; // -128~127
int c = a+b;
byte d = (byte)a+b;
Static
Class
ํด๋์ค ์์ static ๋ถ๊ฐ. ๋จ inner class์๋ ๊ฐ๋ฅ.
class A { // outer
static class B { // inner
// class ๊ด๊ณ is Class, has Class ์๋ก ์์์ ์ ๋ฌํ๋ ํจํด์ ๋ง๋ค์ด์ผ ํ๋ค
// ์์ ์ ๋ฌ์ด ๋ถํธํ ๋ outer class์ ๋ชจ๋ field(์ ์ญ๋ณ์), method์ ์ ๊ทผํ ์ ์๋ค
// ์๋ฐ๋ ๊ฐ์ฒด์งํฅ(์ฌ์ฌ์ฉ)์ด ๋ชฉ์ ์ธ๋ฐ ์ด๋ ๊ฒ ๋ง๋ค๋ฉด
// ๋
๋ฆฝ์ ์ผ๋ก ์ธ ์ ์๋ค๋ ๋จ์
}
}
cf) event(android)
Variable
์ง์ญ๋ณ์
- method ๋ด๋ถ
- ์ ์ธ๋ ์์ญ(method) ๋ด์์๋ง
- ์ ํ์ ๋ถ๊ฐ
- ์ฌ์ฉ ์ ๋ฐ๋์ ์ด๊ธฐํ
์ ์ญ๋ณ์ field
- class ๋ด๋ถ
- ๋ชจ๋ method์์ ์ ๊ทผ ๊ฐ๋ฅ
- ์ ํ์ ๊ฐ๋ฅ
- ๊ฐ์ฒด ์์ฑ ์ํ๊ณ ๊ฐ์ฒด ์ด๋ฆ์ผ๋ก ์ ๊ทผ ๊ฐ๋ฅ
- ๊ฐ์ class๋ค์ด ๊ณต์ ํ๋ ๊ณต์ ๋ณ์
- spring
- DI ๊ฐ๋ ์ ์ํด ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ์ฑ๊ธํค์ผ๋ก ๋ง๋ ๋ค. ์ฌ์ ์ด๊ธฐํ.
- ๊ธฐ๋ณธ์ธ ๋งํผ ๋ง์ด ์ฐ์ธ๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ด์ .
- ์ง์ญ๋ณ์์ ์ด๋ฆ์ด ๊ฐ์ ๋ ๊ตฌ๋ถ this.์ ์ญ๋ณ์
- ์์ฑ ์์ ์ ์๋ ์ด๊ธฐํ
- 0์ ์คํ๋ ๊ฐ์ผ๋ก ์ด๊ธฐํ๋จ
- int ⇒ 0 | double ⇒ 0.0 | char ⇒ โฉu0000 | boolean ⇒ false | String ⇒ null
Method
- ๊ฐ์ฒด ์์ฑ ์์ด ClassName.methodName([paramater, ...]);
- static method ์์์
- non-static method ํธ์ถ ๋ถ๊ฐ
- this ํค์๋ ์ฌ์ฉ ์๋จ
Block
- ๋ฐฐํฌ ์ ์ฌ์ ์์
- db ์ฐ๊ฒฐ, ์๋ฒ ์๋, ์ฌ์ ์ด๊ธฐํ ๋ฑ ์ผ๋ จ์ setting
- ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ํ๋ก๊ทธ๋จ์ ์คํํ์ง ์๋๋ก
static {
System.out.println("static ๋จผ์ ");
}
์ ๋ ฅ
Java 5.0 ์ดํ๋ก Scanner ์ ๊ณต
๋ฐฉ๋ํ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด๋ผ ๋ ํ์ ํ ์๋ ์ฐจ ⇒ iostream ์ฌ์ฉ
๋ฐ๋ณต๋ฌธ์ด 1์ต๋ฒ ๋๋ฉด ๋๋ต 1์ด
java.util.Scanner
Scanner sc = new Scanner(System.in);
sc.nextInt();
sc.next();
sc.nextLine();
๋ค ์ง์ํด์ค์ ์ฝ๋ค. ํ์ง๋ง ์๋๊ฐ ์คํธ๋ฆผ์ ์ด์ฉํ๋ ๊ฒ๋ณด๋ค ํ์ ํ ๋๋ฆผ.
java.io.BufferedReader
InputStream → Reader → Buffered ๊ฐ๊ณต. ๋คํ์ฑ, ์์ ๊ด๊ณ์ผ ๋
- byte ๋จ์
- InputStream
- OutputStream
- Inputstream ——> new InputStreamReader(InputStream is);
- ๋ฌธ์๋จ์๋ก ๋ณํ ํ์
- ๋ฌธ์ ๋จ์
- Reader
- Writer
- InputStreamReader ——> new BufferedReader(new InputStreamReader(System.in))
- ํ๊ธ์ฒ๋ฆฌ 2byte
์ฐธ๊ณ ๋งํฌ
http://www.tcpschool.com/java/java_api_string
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Scanner.html
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/BufferedReader.html