java ๊ฐ์ฒด

moonseunghaยท2022๋…„ 12์›” 12์ผ
0

eclipse - java programming

๋ชฉ๋ก ๋ณด๊ธฐ
6/11

๐Ÿ“Œ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด

  • ํ˜„์‹ค ์„ธ๊ณ„๋Š” ์‚ฌ๋ฌผ์ด๋‚˜ ๊ฐœ๋…์ฒ˜๋Ÿผ ๋…๋ฆฝ๋˜๊ณ  ๊ตฌ๋ถ„๋˜๋Š” ๊ฐ๊ฐ์˜ ๊ฐ์ฒด๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ,
    ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๊ฑด๋“ค์€ ๊ฐ์ฒด๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์ž„
  • ์ด ๊ฐœ๋…์„ ์ปดํ“จํ„ฐ๋กœ ์˜ฎ๊ฒจ ๋†“์•„ ๋งŒ๋“ค์–ด๋‚ธ ๊ฒƒ์ด ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์ž„
  • ๊ฐ์ฒด ์ง€ํ–ฅ 3๋Œ€ ํŠน์ง•
  1. ์บก์Šํ™”(encapsulation)
  2. ์ƒ์†(inhritance)
  3. ๋‹คํ˜•์„ฑ(polymorphism)

- ๊ฐ์ฒด

  • ํ˜„์‹ค : ํ˜„์‹ค์„ธ๊ณ„์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” ๊ฒƒ๋“ค (์œ ํ˜•, ๋ฌดํ˜•, ๊ฐœ๋…, ...)
  • ์ž๋ฐ” : new ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ์ค‘ Heap์˜์—ญ์— ์ƒ์„ฑ๋œ ๊ฒƒ๋“ค
  • ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์—์„œ ๊ฐ์ฒด์˜ ๊ฐœ๋…์€ ํด๋ž˜์Šค์— ์ •์˜๋œ ๋‚ด์šฉ๋Œ€๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋œ ๊ฒฐ๊ณผ๋ฌผ(Object)

- ํด๋ž˜์Šค

  • ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฐœ๋…
  • ๊ฐ์ฒด์˜ ํŠน์„ฑ์— ๋Œ€ํ•œ ์ •์˜๋ฅผ ํ•œ ๊ฒƒ
  • ์บก์Šํ™”๋ฅผ ํ†ตํ•ด ๊ธฐ๋Šฅ์„ ํฌํ•จํ•œ ๊ฐœ๋…
  • ์‚ฌ๋ฌผ์ด๋‚˜ ๊ฐœ๋…์˜ ๊ณตํ†ต ์š”์†Œ๋ฅผ ์ถ”์ƒํ™”(abstraction)ํ•˜์—ฌ ์ •์˜

- ํด๋ž˜์Šค์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ

๋ณ€์ˆ˜ (1๊ฐœ์˜ ์ž๋ฃŒํ˜• / 1๊ฐœ์˜ ๋ฐ์ดํ„ฐ)
โ†’ ๋ฐฐ์—ด (1๊ฐœ์˜ ์ž๋ฃŒํ˜• / ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฐ์ดํ„ฐ)
โ†’ ๊ตฌ์กฐ์ฒด(ํด๋ž˜์Šค) (์—ฌ๋Ÿฌ๊ฐœ์˜ ์ž๋ฃŒํ˜• / ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฐ์ดํ„ฐ)

- ์ถ”์ƒํ™”(abstration)

  • ์œ ์—ฐ์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์ฒด์ ์ธ ๊ฒƒ์€ ์ œ๊ฑฐํ•œ๋‹ค๋Š” ์˜๋ฏธ
  • ์ž‘์„ฑํ•˜๋ ค๋Š” ํด๋ž˜์Šค์˜ ์†์„ฑ๊ณผ ๊ธฐ๋Šฅ ์ค‘
    ํ”„๋กœ๊ทธ๋žจ์—์„œ์˜ ํ•„์š”ํ•œ ๊ณตํ†ต์ ์„ ์ถ”์ถœํ•˜๊ณ  ๋ถˆํ•„์š”ํ•œ ๊ณตํ†ต์ ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ณผ์ •

- ์บก์Šํ™”(encapsulation)

  • ์ถ”์ƒํ™”๋ฅผ ํ†ตํ•ด ์ •๋ฆฌ๋œ ๋ฐ์ดํ„ฐ๋“ค๊ณผ ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋ฒ•
  • ํด๋ž˜์Šค์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ชฉ์ ์ธ ๋ฐ์ดํ„ฐ์˜ ์ ‘๊ทผ์ œํ•œ์„ ์›์น™์œผ๋กœ ํ•˜์—ฌ
    ํด๋ž˜์Šค ์™ธ๋ถ€์—์„œ ๋ฐ์ดํ„ฐ์˜ ์ง์ ‘ ์ ‘๊ทผ์„ ๋ง‰๊ณ 
    ๋Œ€์‹  ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜๋“ค์„ ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•

์บก์Šํ™” ์›์น™
1. ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์€ private์œผ๋กœ ํ•จ
2. ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์—ฐ์‚ฐ์ฒ˜๋ฆฌ๋ฅผ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” ํ•จ์ˆ˜๋“ค์„ ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์ž‘์„ฑ
3. ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋Š” ํด๋ž˜์Šค ๋ฐ–์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก public์œผ๋กœ ์„ค์ •

- ๊ฐ์ฒด(Instance)์˜ ํ• ๋‹น

  • new ์—ฐ์‚ฐ์ž์™€ ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด ์ƒ์„ฑ(== ์ธ์Šคํ„ด์Šคํ™”)์‹œ
    Heap์˜์—ญ์— ์„œ๋กœ ๋‹ค๋ฅธ ์ž๋ฃŒํ˜•์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฐ์†์ ์œผ๋กœ ๋‚˜์—ด/ํ• ๋‹น๋œ ๊ฐ์ฒด ๊ณต๊ฐ„

๐Ÿ“Œํด๋ž˜์Šค (class)

- ํด๋ž˜์Šค์˜ ์„ ์–ธ

package ์„ ์–ธ๋ถ€
public class Member {
	private String pName;
    private int age;
    private boolean yn;
    
    public Member() {}
    
    public String getpName() {
    	return pName;
    }
    public void setpName(String pName) {
    	this.pName = pName;
    }
    public int getAge() {
    	return age;
    }
    public void setAge(int age) {
    	this.age = age;
    }
    public boolean isYn() {
    	return yn;
    }
    public void setYn(boolean yn) {
    	this.yn = yn;
    }

- ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ

- ์ ‘๊ทผ์ œํ•œ์ž

์ ‘๊ทผ์ œํ•œ์žํ•ด๋‹น ํด๋ž˜์Šค ๋‚ด๊ฐ™์€ ํŒจํ‚ค์ง€ ๋‚ดํ›„์† ํด๋ž˜์Šค ๋‚ด์ „์ฒด
+ publicOOOO
# protectedOOO
~ (default)OO
- privateO

- ๋Œ€์ƒ์— ๋”ฐ๋ผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ œํ•œ์ž, ์˜ˆ์•ฝ์–ด

๋Œ€์ƒ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์ œํ•œ์ž, ์˜ˆ์•ฝ์–ด
ํด๋ž˜์Šคpublic, (default), final, abstract
๋ฉ”์†Œ๋“œ๋ชจ๋“  ์ ‘๊ทผ์ œํ•œ์ž, final, abstract, static
๋ณ€์ˆ˜๋ชจ๋“  ์ ‘๊ทผ์ œํ•œ์ž, final, static
์ง€์—ญ๋ณ€์ˆ˜final

์œ ์˜์‚ฌํ•ญ

  • ํด๋ž˜์Šค์— abstract์™€ final ๋™์‹œ ์‚ฌ์šฉ ๋ถˆ๊ฐ€
  • ๋ฉ”์†Œ๋“œ์— static๊ณผ abstract ๋™์‹œ ์‚ฌ์šฉ ๋ถˆ๊ฐ€
  • abstract ๋ฉ”์†Œ๋“œ์˜ ์ ‘๊ทผ์ œํ•œ์ž๋กœ private ์‚ฌ์šฉ ๋ถˆ๊ฐ€

๐Ÿ“Œํ•„๋“œ (field)

  • ํ•„๋“œ == ๋ฉค๋ฒ„๋ณ€์ˆ˜ == ์ธ์Šคํ„ด์Šค๋ณ€์ˆ˜

- ํ•„๋“œ ํ‘œํ˜„์‹

package ์„ ์–ธ๋ถ€
์ ‘๊ทผ์ œํ•œ์ž [์˜ˆ์•ฝ์–ด] class ํด๋ž˜์Šค๋ช… {
	์ ‘๊ทผ์ œํ•œ์ž [์˜ˆ์•ฝ์–ด] ์ž๋ฃŒํ˜• ๋ณ€์ˆ˜๋ช… [=์ดˆ๊ธฐ๊ฐ’];
}
package ์„ ์–ธ๋ถ€
public class example {
	public int num1;
    protected int num2;
    int num3;
    private num4;
}

- ํ•„๋“œ ์˜ˆ์•ฝ์–ด

๊ตฌ๋ถ„์ „์ฒด
static๊ฐ™์€ ํƒ€์ž…์˜ ์—ฌ๋Ÿฌ ๊ฐ์ฒด๊ฐ€ ๊ณต์œ ํ•  ๋ชฉ์ ์˜ ํ•„๋“œ์— ์‚ฌ์šฉ
ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘์‹œ ์ •์  ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ์ž๋™ ํ• ๋‹น๋˜๋Š” ๋ฉค๋ฒ„์— ์ ์šฉ
๊ฐ์ฒด ์ƒ์„ฑ(new)ํ•  ํ•„์š”์—†์Œ
finalํ•œ๋ฒˆ ์ง€์ •๋œ ๊ฐ’ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€
static final
(final static)
์ƒ์ˆ˜ ํ•„๋“œ
static๊ณผ final์˜ ์˜๋ฏธ๋ฅผ ๋‘˜ ๋‹ค ๊ฐ€์ง
package ์„ ์–ธ๋ถ€
public class example {
	private static int num1;

	private final int num2;
}

- ์ƒ์„ฑ๋œ ํ•„๋“œ์— ๋‹ด๊ธด ๊ธฐ๋ณธ๊ฐ’

์ž๋ฃŒํ˜•๊ธฐ๋ณธ๊ฐ’
int0
double0.0
char(๊ณต๋ฐฑ)
์ฐธ์กฐ์ž๋ฃŒํ˜•null

๐Ÿ“Œ์ƒ์„ฑ์ž (constructor)

- ์ƒ์„ฑ์ž

  • new ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ์ค‘ Heap์˜์—ญ์— ๊ฐ์ฒด๋ฅผ ํ• ๋‹นํ•˜๋Š” ์—ญํ• 
  • ๋ฐ˜ํ™˜ํ˜•์ด ์กด์žฌํ•˜์ง€ ์•Š์Œ
  • ์ƒ์„ฑ์ž๋ช…์€ ๋ฐ˜๋“œ์‹œ ํด๋ž˜์Šค๋ช…๊ณผ ๋™์ผํ•ด์•ผํ•จ
  • ์ƒ์„ฑ์ž๋Š” ์ผ์ข…์˜ ๋ฉ”์†Œ๋“œ๋กœ ์ „๋‹ฌ๋œ ์ดˆ๊ธฐ๊ฐ’์„ ๋ฐ›์•„์„œ ๊ฐ์ฒด์˜ ํ•„๋“œ์— ๊ธฐ๋ก
  • ๋‹จ, Heap์˜์—ญ์—” ๋นˆ ๊ณต๊ฐ„์ด ์กด์žฌํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์ „๋‹ฌ๋œ ์ดˆ๊ธฐ๊ฐ’์ด ์—†์„ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ด ๊ธฐ๋ก๋˜์–ด์žˆ์Œ

- ์ƒ์„ฑ์ž ๋ช…๋ช… ๊ทœ์น™

  • ์ƒ์„ฑ์ž์˜ ์„ ์–ธ์€ ๋ฉ”์†Œ๋“œ ์„ ์–ธ๊ณผ ์œ ์‚ฌํ•˜๋‚˜ ๋ฐ˜ํ™˜๊ฐ’์ด ์—†์œผ๋ฉฐ ์ƒ์„ฑ์ž๋ช…์„ ํด๋ž˜์Šค๋ช…๊ณผ ๋˜‘๊ฐ™์ด ์ง€์ •ํ•ด์•ผํ•จ

- ๊ธฐ๋ณธ ์ƒ์„ฑ์ž

  • ๊ฐ์ฒด ์ƒ์„ฑ๋งŒ์„ ๋ชฉ์ ์œผ๋กœ ํ•จ
  • ์ž‘์„ฑํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํด๋ž˜์Šค ์‚ฌ์šฉ์‹œ JVM์ด ์ž๋™์œผ๋กœ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž ์ƒ์„ฑ
  • ๋‹จ, ๋งค๊ฐœ๋ณ€์ˆ˜ ์ƒ์„ฑ์ž ์ž‘์„ฑ์‹œ JVM์ด ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์ฃผ์ง€ ์•Š์Œ
  • ์ƒ์†์—์„œ ์‚ฌ์šฉ์‹œ ๋ฐ˜๋“œ์‹œ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž ์ž‘์„ฑ
package ์„ ์–ธ๋ถ€
์ ‘๊ทผ์ œํ•œ์ž [์˜ˆ์•ฝ์–ด] class ํด๋ž˜์Šค๋ช… {
	์ ‘๊ทผ์ œํ•œ์ž ํด๋ž˜์Šค๋ช…() {}
    ์ ‘๊ทผ์ œํ•œ์ž ํด๋ž˜์Šค๋ช…(๋งค๊ฐœ๋ณ€์ˆ˜) {(this.)ํ•„๋“œ๋ช… = ๋งค๊ฐœ๋ณ€์ˆ˜;}
}

- ๋งค๊ฐœ๋ณ€์ˆ˜ ์ƒ์„ฑ์ž

  • ๊ฐ์ฒด ์ƒ์„ฑ์‹œ ์ „๋‹ฌ๋ฐ›์€ ๊ฐ’์œผ๋กœ ๊ฐ์ฒด๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ์œ„ํ•ด ์‚ฌ์šฉ
  • ์˜ค๋ฒ„๋กœ๋”ฉ์„ ์ด์šฉํ•˜์—ฌ ์ž‘์„ฑ
package ์„ ์–ธ๋ถ€
public class example {
	private String name;
    
	public example() {}
    public example(String name) {
    	this.name = name;
    }

- this.

  • ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์˜ ๋ฉ”์†Œ๋“œ์— ์ˆจ๊ฒจ์ง„ ์ฑ„ ์กด์žฌํ•˜๋Š” ๋ ˆํผ๋Ÿฐ์Šค๋กœ ํ• ๋‹น๋œ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ด
  • ํ•จ์ˆ˜ ์‹คํ–‰์‹œ ์ „๋‹ฌ๋˜๋Š” ๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ์ž๋™์œผ๋กœ ๋ฐ›์Œ
  • ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง€๋Š” ์ƒ์„ฑ์ž์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ช…์ด ํ•„๋“œ๋ช…๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ
    ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๋ณ€์ˆ˜๋ช…์ด ์šฐ์„ ์ด๋ฏ€๋กœ this๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜์—ฌ ๋Œ€์ž…๋˜๋Š” ๋ณ€์ˆ˜๊ฐ€ ํ•„๋“œํ•˜๋Š” ๊ฒƒ์„ ๊ตฌ๋ถ„ํ•ด์คŒ

- this()

  • ์ƒ์„ฑ์ž, ๊ฐ™์€ ํด๋ž˜์Šค์˜ ๋‹ค๋ฅธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์‚ฌ์šฉ
  • ๋ฐ˜๋“œ์‹œ ์ฒซ๋ฒˆ์งธ ์ค„์— ์„ ์–ธํ•ด์•ผํ•จ
package ์„ ์–ธ๋ถ€
Class ์ž‘์„ฑ๋ถ€
	public User(String userId, String userPwd, String userName) {
		this(userId, userPwd);
		this.userName = userName;
	}

๐Ÿ“Œ๋ฉ”์†Œ๋“œ

  • ํ˜ธ์ถœ์„ ํ†ตํ•ด ์‚ฌ์šฉํ•˜๋ฉฐ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์œ ๋ฌด์— ๋”ฐ๋ผ ์ „๋‹ฌ๊ฐ’์˜ ์œ ๋ฌด๊ฐ€ ๊ฒฐ์ •๋จ
  • ๋ฉ”์†Œ๋“œ(ํ•จ์ˆ˜) ๋‚ด์— ์ž‘์„ฑ๋œ ์—ฐ์‚ฐ ์ˆ˜ํ–‰ ํ›„ ๋ฐ˜ํ™˜๊ฐ’/๊ฒฐ๊ณผ๊ฐ’์€ ์žˆ๊ฑฐ๋‚˜ ์—†์„ ์ˆ˜ ์žˆ์Œ

- ๋ฉ”์†Œ๋“œ ํ‘œํ˜„์‹

package ์„ ์–ธ๋ถ€
Class ์ž‘์„ฑ๋ถ€
	์ ‘๊ทผ์ œํ•œ์ž [์˜ˆ์•ฝ์–ด] ๋ฐ˜ํ™˜ํ˜• ๋ฉ”์†Œ๋“œ๋ช…([๋งค๊ฐœ๋ณ€์ˆ˜]) {
    	// ๊ธฐ๋Šฅ ์ •์˜
    }

- ๋ฉ”์†Œ๋“œ ์˜ˆ์•ฝ์–ด

๊ตฌ๋ถ„์ „์ฒด
staticstatic ์˜์—ญ์— ํ• ๋‹นํ•˜์—ฌ ๊ฐ์ฒด ์ƒ์„ฑ์—†์ด ์‚ฌ์šฉ
final์ข…๋‹จ์˜ ์˜๋ฏธ, ์ƒ์†์‹œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋ถˆ๊ฐ€๋Šฅ
abstract๋ฏธ์™„์„ฑ๋œ, ์ƒ์†ํ•˜์—ฌ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์œผ๋กœ ์™„์„ฑ์‹œ์ผœ ์‚ฌ์šฉํ•ด์•ผํ•จ
synchronized๋™๊ธฐํ™” ์ฒ˜๋ฆฌ, ๊ณต์œ  ์ž์›์— ํ•œ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•จ
static final
(final static)
static๊ณผ final์˜ ์˜๋ฏธ๋ฅผ ๋‘˜ ๋‹ค ๊ฐ€์ง

- ๋ฉ”์†Œ๋“œ ๋ฐ˜ํ™˜ํ˜•

๊ตฌ๋ถ„์ „์ฒด
void๋ฐ˜ํ™˜ํ˜•์ด ์—†์Œ์„ ์˜๋ฏธ, ๋ฐ˜ํ™˜๊ฐ’์ด ์—†์„ ๊ฒฝ์šฐ ๋ฐ˜๋“œ์‹œ ์ž‘์„ฑ
๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์—ฐ์‚ฐ ์ˆ˜ํ–‰ ํ›„ ๋ฐ˜ํ™˜๊ฐ’์ด ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์ผ ๊ฒฝ์šฐ ์‚ฌ์šฉ
๋ฐฐ์—ด์—ฐ์‚ฐ ์ˆ˜ํ–‰ ํ›„ ๋ฐ˜ํ™˜๊ฐ’์ด ๋ฐฐ์—ด์ธ ๊ฒฝ์šฐ ๋ฐฐ์—ด์˜ ์ฃผ์†Œ๊ฐ’์„ ๋ฐ˜ํ™˜
ํด๋ž˜์Šค์—ฐ์‚ฐ ์ˆ˜ํ–‰ ํ›„ ๋ฐ˜ํ™˜๊ฐ’์ด ํ•ด๋‹น ํด๋ž˜์Šค ํƒ€์ž…์˜ ๊ฐ์ฒด์ผ ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฐ์ฒด์˜ ์ฃผ์†Œ๊ฐ’์ด ๋ฐ˜ํ™˜

- ๋ฉ”์†Œ๋“œ ๋งค๊ฐœ๋ณ€์ˆ˜

๊ตฌ๋ถ„์ „์ฒด
( )๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—†์Œ์„ ์˜๋ฏธ
๊ธฐ๋ณธ ์ž๋ฃŒํ˜•๊ธฐ๋ณธํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜ ์‚ฌ์šฉ์‹œ ๊ฐ’์„ ๋ณต์‚ฌํ•˜์—ฌ ์ „๋‹ฌ
๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์—ฌ๋„ ๋ณธ๋ž˜ ๊ฐ’์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Œ
๋ฐฐ์—ด
ํด๋ž˜์Šค
๋ฐฐ์—ด, ํด๋ž˜์Šค ๋“ฑ ์ฐธ์กฐํ˜•์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ์‹œ์—๋Š” ๋ฐ์ดํ„ฐ์˜ ์ฃผ์†Œ๊ฐ’์„ ์ „๋‹ฌํ•˜๊ธฐ๋•Œ๋ฌธ์—
๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ๋ณธ๋ž˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆ˜์ •๋จ (์–•์€ ๋ณต์‚ฌ)
๊ฐ€๋ณ€์ธ์ž๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์œ ๋™์ ์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•
๊ฐ€๋ณ€ ๋งค๊ฐœ๋ณ€์ˆ˜ ์™ธ ๋‹ค๋ฅธ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ์œผ๋ฉด๊ฐ€๋ณ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋งˆ์ง€๋ง‰์— ์„ค์ •
* ๋ฐฉ๋ฒ• : (์ž๋ฃŒํ˜• ... ๋ณ€์ˆ˜๋ช…)

- setter ๋ฉ”์†Œ๋“œ

  • ํ•„๋“œ์— ๋ณ€๊ฒฝํ•  ๊ฐ’์„ ์ „๋‹ฌ๋ฐ›์•„์„œ ํ•„๋“œ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฉ”์†Œ๋“œ
package ์„ ์–ธ๋ถ€
Class ์ž‘์„ฑ๋ถ€
	์ ‘๊ทผ์ œํ•œ์ž [์˜ˆ์•ฝ์–ด] void setํ•„๋“œ๋ช…(์ž๋ฃŒํ˜• ๋ณ€์ˆ˜๋ช…) {
    	(this.)ํ•„๋“œ๋ช… = ๋ณ€์ˆ˜๋ช…;
    }
    
    public void setpName(String pName) {
    	this.pName = pName;
    }
    public void setAge(int age) {
    	this.age = age;
    }
    public void setYn(boolean yn) {
    	this.yn = yn;
    }
    
    ๊ฐ์ฒด๋ช….setName("์ด๋ฆ„");

- getter ๋ฉ”์†Œ๋“œ

  • ํ•„๋“œ์— ๊ธฐ๋ก๋œ ๊ฐ’์„ ์ฝ์–ด์„œ ์š”์ฒญํ•œ ๊ณณ์œผ๋กœ ์ฝ์€๊ฐ’์„ ๋„˜๊ธฐ๋Š” ๋ฉ”์†Œ๋“œ
package ์„ ์–ธ๋ถ€
Class ์ž‘์„ฑ๋ถ€
	์ ‘๊ทผ์ œํ•œ์ž [์˜ˆ์•ฝ์–ด] ๋ฐ˜ํ™˜ํ˜• getํ•„๋“œ๋ช…() {
    	return /*this.*/ํ•„๋“œ๋ช…;
    }
    
    public String getpName() {
    	return pName;
    }
    public int getAge() {
    	return age;
    }
    public boolean isYn() {
    	return yn;
    }
    
    ๊ฐ์ฒด๋ช….getName();

๐Ÿ“Œ์˜ค๋ฒ„๋กœ๋”ฉ

  • ํ•œ ํด๋ž˜์Šค ๋‚ด์— ๋™์ผํ•œ ์ด๋ฆ„์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์ž‘์„ฑํ•˜๋Š” ๊ธฐ๋ฒ•

์˜ค๋ฒ„๋กœ๋”ฉ ์กฐ๊ฑด

  • ๊ฐ™์€ ๋ฉ”์†Œ๋“œ๋ช…
  • ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜/ํƒ€์ž…(์ž๋ฃŒํ˜•)/์ˆœ์„œ๊ฐ€ ๋‹ฌ๋ผ์•ผํ•จ

0๊ฐœ์˜ ๋Œ“๊ธ€