์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ํด๋ฆฐ ์ฝ๋
- ์๊ณ ๋ฆฌ์ฆ
- Git
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- golang
- go
- ์คํ๋ง
- Gradle
- JPA
- ๊ฐ์ฌ์ค
- Postman
- ํ์ด์ฌ
- ์ฝ๋์
- Spring Boot
- ๊ธฐ์ด100์
- Python
- spring security
- mariadb
- java
- H2 ์ค์น
- Vue.js
- ๋กฌ๋ณต
- ํด๋ฆฐ์ฝ๋
- ์ค๋ธ์
- thymeleaf
- GitHub
- MySQL
- springboot
- Spring
- Codeup
- Today
- Total
nyximos.log
[Java] ํด๋์ค ๋ณธ๋ฌธ
๐ฉ๐ ๋ชฉํ
์๋ฐ์ Class์ ๋ํด ํ์ตํ์ธ์
๐ฉ๐ป ํ์ตํ ๊ฒ
- ํด๋์ค ์ ์ํ๋ ๋ฐฉ๋ฒ
- ๊ฐ์ฒด ๋ง๋๋ ๋ฐฉ๋ฒ (new ํค์๋ ์ดํดํ๊ธฐ)
- ๋ฉ์๋ ์ ์ํ๋ ๋ฐฉ๋ฒ
- ์์ฑ์ ์ ์ํ๋ ๋ฐฉ๋ฒ
- this ํค์๋ ์ดํดํ๊ธฐ
๐ฉ๐ฌ ๊ณผ์
- int ๊ฐ์ ๊ฐ์ง๊ณ ์๋ ์ด์ง ํธ๋ฆฌ๋ฅผ ๋ํ๋ด๋ Node ๋ผ๋ ํด๋์ค๋ฅผ ์ ์ํ์ธ์.
- int value, Node left, right๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํฉ๋๋ค.
- BinrayTree๋ผ๋ ํด๋์ค๋ฅผ ์ ์ํ๊ณ ์ฃผ์ด์ง ๋ ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ถ๋ ฅํ๋ bfs(Node node)์ dfs(Node node) ๋ฉ์๋๋ฅผ ๊ตฌํํ์ธ์.
- DFS๋ ์ผ์ชฝ, ๋ฃจํธ, ์ค๋ฅธ์ชฝ ์์ผ๋ก ์ํํ์ธ์.
ํด๋์ค ์ ์ํ๋ ๋ฐฉ๋ฒ
ํด๋์ค
๊ฐ์ฒด๋ฅผ ์ ์ ํด์ฃผ๋ ํ, ์์ฑ๊ณผ ๊ธฐ๋ฅ
ํด๋์ค์ ๊ตฌ์ฑ
- ํ๋ : ๊ฐ์ฒด์ ์ํ
- ๋ฉ์๋ : ๊ฐ์ฒด์ ๋์
- ์์ฑ์ : ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํํด์ฃผ๋ ๋ฉ์๋
class ํด๋์ค์ด๋ฆ {
์ ์ด์ ์๋ฃํ ํ๋๋ช
;
์ ์ด์ ๋ฐํํ ๋ฉ์๋๋ช
(){
}
์ ์ด์ ์์ฑ์๋ช
() {
}
}
์ ์ด์ modifier
ํด๋์ค, ๋ณ์ ๋๋ ๋ฉ์๋์ ์ ์ธ๋ถ์ ํจ๊ป ์ฌ์ฉ๋์ด ๋ถ๊ฐ์ ์ธ ์๋ฏธ๋ฅผ ๋ณด์ฌ
์ ๊ทผ ์ ์ด์์ ๊ทธ ์ธ ์ ์ด์๊ฐ ์๋ค.
์ ๊ทผ ์ ์ด์ access modifier
๋ฉค๋ฒ, ํด๋์ค์ ์ฌ์ฉ๋์ด, ํด๋นํ๋ ๋ฉค๋ฒ ๋๋ ํด๋์ค๋ฅผ ์ธ๋ถ์์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ์ ํํ๋ ์ญํ ์ ํ๋ค.
์ ๊ทผ ์ ์ด์๊ฐ ์ง์ ๋์ด ์์ง ์์ ๋๋ default์์ ๋ปํ๋ค.
์ ๊ทผ ์ ์ด์๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ์ธ๋ถ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ณ ๋ด๋ถ์ ์ผ๋ก๋ง ์ฌ์ฉ๋๋ ๋ถ๋ถ์ ์จ๊ธฐ๊ธฐ ์ํจ์ด๋ค.
์ ๊ทผ ์ ์ด์ | ๊ฐ์ ํด๋์ค | ๊ฐ์ ํจํค์ง | ์์ ํด๋์ค | ์ ์ฒด |
public | O | O | O | O |
protected | O | O | O | |
์์ | O | O | ||
private | O |
static
ํด๋์ค ๋ณ์(static ๋ณ์)๋ ํ๋์ ๋ณ์๋ฅผ ์ธ์คํด์ค๊ฐ ๊ณต์ ํ๋ค.
ํด๋์ค์ ๊ด๊ณ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ธ์คํด์ค๋ฅผ ์์ฑํ์ง ์๊ณ ๋ ์ฌ์ฉํ ์ ์๋ค.
final
๋ณ์์ผ ๊ฒฝ์ฐ ์์๊ฐ ๋๋ฉฐ
๋ฉ์๋์ ์ฌ์ฉ๋๋ฉด ์ค๋ฒ๋ผ์ด๋ฉ์ ์๊ฒ ๋๋ค.
ํด๋์ค์ ์ฌ์ฉ๋๋ฉด ์์์ด ๋ถ๊ฐ๋ฅํ๋ค.
abstract
์ถ์ ํด๋์ค์ ์ถ์ ๋ฉ์๋๋ฅผ ๋ง๋ค ๋ ์ฌ์ฉ
๊ฐ์ฒด ๋ง๋๋ ๋ฐฉ๋ฒ (new ํค์๋ ์ดํดํ๊ธฐ)
1. ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๊ธฐ ์ํ ์ฐธ์กฐ ๋ณ์ ์ ์ธ
๋ฉ๋ชจ๋ฆฌ์ ์ฐธ์กฐ๋ณ์ t๋ฅผ ์ํ ๊ณต๊ฐ์ด ๋ง๋ จ๋๋ค.
ํด๋์ค๋ช
๋ณ์๋ช
;
Fruit apple;
2. ๊ฐ์ฒด ์์ฑ ํ ์ฐธ์กฐ ๋ณ์์ ๊ฐ์ฒด์ ์ฐ๊ฒฐ
์ฐ์ฐ์ new์ ์ํด ํด๋์ค์ ์ธ์คํด์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋น ๊ณต๊ฐ์ ์์ฑ๋๋ค.
๋ฉค๋ฒ ๋ณ์๋ ๊ฐ ์๋ฃํ์ ํด๋นํ๋ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ด๊ธฐํ๋๋ค.
์ฐธ์กฐ ๋ณ์๋ก ์ธ์คํด์ค๋ฅผ ๋ค๋ฃฌ๋ค.
๋ณ์๋ช
= new ํด๋์ค๋ช
();
apple = new Fruit();
๐ฎ ์ฐ์ฐ์ new๊ฐ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ๊ฒ์ด๋ค.
์์ฑ์๊ฐ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์๋๋ค.
๋ฉ์๋ ์ ์ํ๋ ๋ฐฉ๋ฒ
์ ์๋ถ์ ํธ์ถ๋ถ๋ก ๊ตฌ์ฑ๋๋ค.
// ์ ๊ทผ์ง์ ์ ๋ฆฌํดํ์
๋ฉ์๋๋ช
(ํ์
๋ณ์๋ช
)
public void count(){ // ์ ์ธ๋ถ
// ํธ์ถ๋ถ
}
์์ฑ์ ์ ์ํ๋ ๋ฐฉ๋ฒ
- ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํํด์ฃผ๋ ๋ฉ์๋
- ์์ฑ์ ์ด๋ฆ์ ํด๋์ค์ ์ด๋ฆ๊ณผ ๊ฐ์์ผํ๋ค.
- ๋ฐํ๊ฐ์ ๊ฐ์ง์ง ์๋๋ค. (void ์๋ถ์)
- ๊ฐ๋ฐ์ ์ง์ ์์ฑํ์ง ์๋๋ผ๋ ์๋์ ์ผ๋ก ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ๊ฐ์ง๋ค. (๋ชจ๋ ํด๋์ค๋ ๋ฐ๋์ ์์ฑ์๋ฅผ ๊ฐ์ง๋ค.)
- ํ๋์ ํด๋์ค๊ฐ ์ฌ๋ฌ ๊ฐ์ ์์ฑ์๋ฅผ ๊ฐ์ง ์ ์๋ค. (์์ฑ์๋ ์ค๋ฒ๋ก๋ฉ์ด ๊ฐ๋ฅ)
class ํด๋์ค๋ช
(){
int x;
int y;
ํด๋์ค๋ช
(){
}
ํด๋์ค๋ช
(ํ์
๋ณ์๋ช
) {
}
}
class Position(){
Position(){
}
Position(int x, int y){
this.x = x;
this.y = y;
}
}
๊ธฐ๋ณธ ์์ฑ์ default constructor
์ปดํ์ผ ํ ๋, ์์คํ์ผ(*.java)์ ํด๋์ค์ ์์ฑ์๊ฐ ํ๋๋ ์ ์๋์ง ์์ ๊ฒฝ์ฐ ์ปดํ์ผ๋ฌ๋ ๊ธฐ๋ณธ์์ฑ์๋ฅผ ์ถ๊ฐํ์ฌ ์ปดํ์ผํ๋ค.
๋งค๊ฐ๋ณ์๊ฐ ์๋ ์์ฑ์
๋ฉ์๋์ฒ๋ผ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํ์ฌ ํธ์ถ ์ ๊ฐ์ ๋๊ฒจ๋ฐ์์ ์ธ์คํด์ค์ ์ด๊ธฐํ ์์ ์ ์ฌ์ฉํ ์ ์๋ค.
this ํค์๋ ์ดํดํ๊ธฐ
์ธ์คํด์ค๊ฐ ์๊ธฐ ์์ ์ ์ฐธ์กฐํ ๋ ์ฌ์ฉํ๋ ๋ณ์
ํด๋น ์ธ์คํด์ค์ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์๋ค.
ํด๋น ๊ฐ์ฒด๋ฅผ ๋ฐํํ ๋ ์ฌ์ฉ
์์ฑ์์์ ๋ค๋ฅธ ์์ฑ์ ํธ์ถํ๊ธฐ
์์ฑ์์์ ๋ค๋ฅธ ์์ฑ์ ํธ์ถํ ๋ ์ฌ์ฉํ๋ this()
- ์์ฑ์์ ์ด๋ฆ์ผ๋ก ํด๋์ค์ด๋ฆ ๋์ this๋ฅผ ์ฌ์ฉํ๋ค.
- ํ ์์ฑ์์์ ๋ค๋ฅธ ์์ฑ์๋ฅผ ํธ์ถํ ๋๋ ๋ฐ๋์ ์ฒซ ์ค์์๋ง ํธ์ถ์ด ๊ฐ๋ฅํ๋ค.
Class Fruit {
String name;
String color;
int price;
Fruit() {
this("apple", "red", 1000)
}
Fruit(String name, String color, int price) {
this.name = name;
this.color = color;
this.price = price;
}
}
๊ฐ์ฒด ์์ ์ ๊ฐ๋ฆฌํค๋ ์ฐธ์กฐ๋ณ์ this
- this() ์์ฑ์์๋ ๋ค๋ฅด๋ค.
- ์ธ์คํด์ค ์์ ์ ๊ฐ๋ฆฌํค๋ ์ฐธ์กฐ๋ณ์, ์ธ์คํด์ค์ ์ฃผ์๊ฐ ์ ์ฅ๋์ด ์๋ค.
- ๋ชจ๋ ์ธ์คํด์ค ๋ฉ์๋์ ์ง์ญ๋ณ์๋ก ์จ๊ฒจ์ง ์ฑ๋ก ์กด์ฌํ๋ค.
- ์ ์ธ ์ํด๋ ์ฌ์ฉ๊ฐ๋ฅ
๐ฉ๐ฌ ๊ณผ์
- int ๊ฐ์ ๊ฐ์ง๊ณ ์๋ ์ด์ง ํธ๋ฆฌ๋ฅผ ๋ํ๋ด๋ Node ๋ผ๋ ํด๋์ค๋ฅผ ์ ์ํ์ธ์.
- int value, Node left, right๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํฉ๋๋ค.
- BinrayTree๋ผ๋ ํด๋์ค๋ฅผ ์ ์ํ๊ณ ์ฃผ์ด์ง ๋ ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ถ๋ ฅํ๋ bfs(Node node)์ dfs(Node node) ๋ฉ์๋๋ฅผ ๊ตฌํํ์ธ์.
- DFS๋ ์ผ์ชฝ, ๋ฃจํธ, ์ค๋ฅธ์ชฝ ์์ผ๋ก ์ํํ์ธ์.
DFS Depth-First Search
๊น์ด ์ฐ์ ๊ฒ์
BFS Breadth-First Search
๋์ด ์ฐ์ ๊ฒ์
'Programming > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ํจํค์ง (0) | 2022.08.17 |
---|---|
[Java] ์์ (0) | 2022.08.12 |
[Java] ์ ์ด๋ฌธ (0) | 2022.08.04 |
[Java] ์ฐ์ฐ์ (0) | 2022.02.02 |
[Java] ์๋ฐ ๋ฐ์ดํฐ ํ์ , ๋ณ์ ๊ทธ๋ฆฌ๊ณ ๋ฐฐ์ด (0) | 2022.01.14 |