๐ก ๊ฐ๋ฐ์ ์ธํฐ๋ทฐ ์ ์ฃผ์ํด์ผ ๋ ์ฌํญ์ ๊ด๋ จ๋ ์์
- ์ฝ๋ฉ ์ธํฐ๋ทฐ ๊ด๋ จ ์ฑ ๋ค์ ๋ฌธ์ ํ์ด์๋ง ์ง์ค๋์ด ์๋ค.
www.youtube.com/watch?v=SZEHjcDSEdE
๐ โ๋ธ๋ก ์ด๊ธฐํ๋ ์์ฑ์ ์ด๊ธฐํ ์์ผ๋ฉด ์์ฑ์ ์ด๊ธฐํ๋ก ๋จน๋์?
package choi.hyang.study.chapter5;
public class Init {
private int number;
// ์ด๊ธฐํ ๋ธ๋ก
{
this.number =10;
System.out.println("init block");
}
// ์์ฑ์ ๋ธ๋ก
public Init() {
this.number = 100;
System.out.println("constructor");
}
public static void main(String[] args) {
Init init = new Init();
System.out.println(init.number); // 100 ์ถ๋ ฅ
}
}
Reference
jeeneee.dev/java-live-study/week5-class/
[java-live-study] 5์ฃผ์ฐจ-ํด๋์ค
ํด๋์ค์ ๊ฐ์ฒด ํด๋์ค๋ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(Object-oriented programming)์์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ํ์ ๋์์ ์ ์ํ๋ ์ผ์ข ์ ์ค๊ณ๋์ด๋ค. ์ฌ๊ธฐ์ ๊ฐ์ฒด๋ ์ค์ ์ธ๊ณ์ ์ฌ๋ฌผ ๋๋ ๊ฐ๋ ์ ์ปดํจ
jeeneee.dev
๐ ์๋ฐ์์์ call by value , call by reference
call by value, call by reference๋ C๋ C++ ์์๋ ํ์ํ ๊ฐ๋ ์ด๋ค.
์๋ฐ๋ call by value
ํ๋จ ๋งํฌ ์ฝ์ด๋ณด๊ธฐ
์๋ฐ์ ๋ฉ์๋(ํจ์) ํธ์ถ ๋ฐฉ์ - Call by Value vs Call by Reference
๋ฉ์๋(ํจ์) ํธ์ถ ๋ฐฉ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๋ณ์๋ฅผ ๋ค๋ฅธ ํจ์์ ์ธ์๋ก ๋๊ฒจ ์ค ์ ์์ต๋๋ค. ์ด ๋ ์ด ๋ณ์์ '๊ฐ'์ ๋๊ฒจ ์ฃผ๋ ํธ์ถ ๋ฐฉ์์ Call by Value, ์ด ๋ณ์์ '์ฐธ์กฐ๊ฐ' (ํน์ ์ฃผ์, ํฌ์ธํฐ
siyoon210.tistory.com
5์ฃผ์ฐจ ๊ณผ์ ์ ๋ํ ์ค๋ช ์ด ์๋์ด ์๋ ๋งํฌ
blog.naver.com/swoh1227/222175350122
์จ๋ผ์ธ ์๋ฐ ์คํฐ๋#5 - 5์ฃผ์ฐจ ๊ณผ์ (์ด์ง ํธ๋ฆฌ ๋ ธ๋ ์ฝ์ , ์ญ์ , ์ํ, ๋๋น ์ฐ์ ํ์(BFS), ๊น์ด ์ฐ
์ ํ๋ธ๋ฅผ ํตํด ์๋ฐ ์คํฐ๋๋ฅผ ์งํํ๋ ํ๋ก๊ทธ๋จ์ด ์์ด ํ๋ฒ ์ ๋ฆฌํด๋ณผ๊น ํฉ๋๋ค.(์๋๋ ํด๋น ๋งํฌ์ด๋ ์ฐธ...
blog.naver.com
์์ฑ์ ํธ์ถ ์ this๋ ์๋ต๋์ด ์์ง ์๊ณ ์์๊ด๊ณ๋ผ๋ฉด super๋ง ์๋ต๋์ด ์๋ค.
package choi.hyang.study.chapter5;
public class Init {
private int number;
private String name;
public Init(int number) {
// this(); ์์จ์๋ค๊ณ ์๋ต๋์ด ์๋ ๊ฒ์ด ์๋๋ค.
this.number = number;
}
public Init() {
this.name = "whiteship";
}
public static void main(String[] args) {
Init init = new Init(3);
System.out.println(init.number);
System.out.println(init.name);
}
}
๐ finalํค์๋๋ ์ธ์ ์ฌ์ฉํ๋ฉด ์ข๋์?
final ํค์๋๋ ์์์ ๋ง์๋ ์ฌ์ฉํ๋ค.
์ค๋ฒ๋ผ์ด๋ฉ์ ๋ง์ ๋๋ ๋ฉ์๋์ ๋ถ์ธ๋ค.
programming.guide/java/when-to-create-a-final-class.html
Java: When to create a final class | Programming.Guide
A final class is simply a class that can’t be extended. It does not mean that all fields in the class are automatically final or that all references to this class would act as if they were declared as final. You should make a class final when the alterna
programming.guide
๋ฆฌํ๋ ์ ์ ์ฌ์ฉํ๋ ์ ์ ํ ์ (์์ ๋ชจ๋ ๊ฐ๋ฐ)
์ ์์ ๋ค์ด๋ก๋ ๊ฐ๋ฐ,,, ์ฝ๊ณ ๋น ๋ฅด๊ฒ ํ๊ณ ์ถ๋ค (feat. ์์ ๋ค์ด๋ก๋ ๋ชจ๋ ๊ฐ๋ฐ๊ธฐ) - ์ฐ์ํํ์
woowabros.github.io
ํ ์์ญ์ ๋ํ ์ข์ ์ค๋ช
github.com/d-h-k/Java_Study/blob/main/Mobidic/%EC%9E%90%EB%B0%94%205%EC%B0%A8%EC%8B%9C.md
๐ ์ด๋ ธํ ์ด์ ๋ ์ค๋ฒ๋ผ์ด๋ฉ์ด ๋๋์?
์ด๋ ธํ ์ด์ ์ ํด๋์คlevel ์ค๋ฒ๋ผ์ด๋ฉ์ ๋ฉ์๋ level์ด๋ฏ๋ก ์ง๋ฌธ์ ์์ฒด์ ์ค๋ฅ๊ฐ ์๋ค.
๐ ์ถ์ํด๋์ค์ ์ธํฐํ์ด์ค๋ ์ด๋จ ๋ ์ฌ์ฉํ๋์?
์ต๊ทผ์ ์ธํฐํ์ด์ค๊ฐ ๋ฐ์ ํด์ ์ถ์ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ์๋ฏธ๊ฐ ์์ด์ง ( default ๋ฉ์๋ ๋ฑ์ฅ..)
(default ๋ฉ์๋์ ๋ํ ์ค๋ช ์ ๋์๋ฐ 8์์ ๋ฃ๊ณ ์ ๋ฆฌํ ์ฌ๊ธฐ์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.
๊ธฐ์ ๋ : ์ธํฐํ์ด์ค๋ ๊ท์ฝ์ด๋ค.
ํ ๋น๋์ ์คํ๋ง3๋ฅผ ๋ณด๋ฉด "์ธํฐํ์ด์ค์ ๊ท์ฝ ๊ณผ ํจ์ฉ๊ฐ์น" ๋ถ๋ถ์ ์ฝ์ด๋ณด๊ธฐ
6์ฃผ์ฐจ ๊ณผ์
๋ค์ด๋๋ฏน ๋ฉ์๋ ๋์คํจ์น - java double dispatch์ ๋ํ ์ค๋ช ์์ผ๋ฉด ๋ฌด์กฐ๊ฑด ํํธ ♥
๐ ์์ด ๊ณต๋ถ ๋ฐฉ๋ฒ์? (๊ธฐ์ ๋ ๋ฐฉ์)
๊ฐ๋จ์ ์๋ ํ์ ๋ค๋๊ธฐ -> ๋งํ๊ธฐ๊ฐ ํฌํจ๋ ์ํ๊ณต๋ถํ๊ธฐ (์ : ์์ด์์ธ , ํ ํ)
โจ ๊ฐ์ ๋ฃ๋ค๊ฐ ์๊ฐ๋์ ์ฐพ์๋ณธ ๋งํฌ
์๋ฐ ํด๋์ค ๋ฐ์ดํธ ์ฝ๋ ์ฝ๋ ๋ฐฉ๋ฒ
www.slipp.net/wiki/plugins/viewsource/viewpagesrc.action?pageId=8880219
์์ค ๋ณด๊ธฐ
Compiled from "LocalVariable.java" public class LocalVariable { public LocalVariable(); Code: 0: aload_0 1: invokespecial #1 // Method java/lang/Object." ":()V 4: return void local(); Code: 0: iconst_0 // ์์ 0์ push => ์ด๋์ pushํ๋์ง ๋ชจ๋ฅด
www.slipp.net
'Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
6์ฃผ์ฐจ ๊ณผ์ : ์์ (0) | 2020.12.26 |
---|---|
4์ฃผ์ฐจ ๊ณผ์ : ์ ์ด๋ฌธ(feedback, ํผ๋๋ฐฑ) (0) | 2020.12.22 |
5์ฃผ์ฐจ ๊ณผ์ : ํด๋์ค (0) | 2020.12.14 |
4์ฃผ์ฐจ ๊ณผ์ : ์ ์ด๋ฌธ (0) | 2020.12.12 |
3์ฃผ์ฐจ ๊ณผ์ : ์ฐ์ฐ์(feedback, ํผ๋๋ฐฑ) (0) | 2020.11.29 |