๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐‘†๐‘ข๐‘›๐‘ โ„Ž๐‘–๐‘›๐‘’ ๐‘Ž๐‘“๐‘ก๐‘’๐‘Ÿ ๐‘Ÿ๐‘Ž๐‘–๐‘›โœง

[Java] ๊ฐ์ฒด, ์ƒ์„ฑ์ž, ํด๋ž˜์Šค ๋ณธ๋ฌธ

๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ด๐Ÿ’ป/๐‰๐š๐ฏ๐š

[Java] ๊ฐ์ฒด, ์ƒ์„ฑ์ž, ํด๋ž˜์Šค

๐ŸคRyusun๐Ÿค 2022. 10. 7. 16:17

โญ๊ฐ์ฒด

 

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

 

  • ๊ฐ์ฒด ์ถœ๋ ฅ
    • ๋ณดํ†ต ๊ฐ์ฒด ์ถœ๋ ฅํ•˜๋Š” ์ด์œ ๋Š” ๊ฐ์ฒด ๋‚ด์šฉ์„ ๋ณด๊ธฐ ์œ„ํ•ด์„œ์ž„
    • ๊ฐ์ฒด ์ด๋ฆ„์—๋Š” ๊ฐ์ฒด ๊ณ ์œ ์˜ ID๊ฐ’์ด ๋“ค์–ด์žˆ์Œ
    • ๊ฐ์ฒด ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” toString() ์ •์˜
@Override
public String toString() {
    return "Student{" +
            "ID='" + ID + '\'' +
            ", name='" + name + '\'' +
            ", currentSemester=" + currentSemester +
            ", takenCourses=" + Arrays.toString(takenCourses) +
            '}';

 

  • ๊ฐ์ฒด ๋น„๊ต
    • Object.hashcode()
      • ๋‘ ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅด๋ฉด ๊ฐ์ฒด ๊ณ ์œ  ID๊ฐ’์ธ hascode๋„ ๋‹ค๋ฆ„
      • ๋‘ ๊ฐ์ฒด๋ฅผ ๋น„๊ตํ•  ๋•Œ ๋จผ์ € hashcode๋กœ ๋น„๊ตํ•˜๋ฉด ๋น ๋ฅด๊ฒŒ ์—ฐ์‚ฐ ๊ฐ€๋Šฅ
      • hashcode๊ฐ€ ๋‹ค๋ฅด๋ฉด ๋‘ ๊ฐ์ฒด๊ฐ€ ๊ฐ™์ง€ ์•Š์Œ
      • hashcode๊ฐ€ ๊ฐ™์œผ๋ฉด ๋‘ ๊ฐ์ฒด๊ฐ€ ๊ฐ™๊ฑฐ๋‚˜ ๋‹ค๋ฅผ ์ˆ˜๋„ ์žˆ์Œ
        • ๊ฐ์ฒด ๊ณ ์œ  ID๊ฐ’์ด ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— ๋‘ ๊ฐ์ฒด๊ฐ€ ๊ฐ™์„ ์ˆ˜๋„ ์žˆ์Œ
        • ๊ฐ์ฒด ๊ณ ์œ  ID๊ฐ’์ด ๊ฐ™์•„๋„ ๋‚ด์šฉ๋ฌผ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ
          • ๋ณดํ†ต hashing ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ž˜๋ชป ๋˜์—ˆ๊ฑฐ๋‚˜ ์ถฉ๋Œ์ด ์ผ์–ด๋‚˜๋Š” ๊ฒฝ์šฐ์ž„
    • Object.equals()
      • ๋‘ ๊ฐ์ฒด๊ฐ€ equals()์— ์˜ํ•ด ๋™์ผํ•˜๋‹ค๋ฉด ๋‘ ๊ฐ์ฒด์˜ hashCode() ๊ฐ’๋„ ์ผ์น˜ํ•ด์•ผ ํ•จ
        • ๋‚ด์šฉ๋ฌผ์ด ๋‹ค ๊ฐ™๋‹ค๋Š” ์†Œ๋ฆฌ๋Š” ๊ฐ™์€ ๊ฐ์ฒด์ž„์„ ์˜๋ฏธ
      • ๋‘ ๊ฐ์ฒด๊ฐ€ equals()์— ์˜ํ•ด ๋™์ผํ•˜์ง€ ์•Š๋‹ค๋ฉด ๋‘ ๊ฐ์ฒด์˜ hashCode() ๊ฐ’์€ ์ผ์น˜ํ•˜์ง€ ์•Š์•„๋„ ๋จ
        • ๋‹ค๋ฅธ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋ฉด hash table ์„ฑ๋Šฅ ํ–ฅ์ƒ
      • equals()์žฌ์ •์˜ํ•˜๋ฉด hashCode()๋„ ์žฌ์ •์˜ํ•ด์•ผ ํ•จ
        • ๊ฐ™์€ ๊ฐ์ฒด์— ๋Œ€ํ•ด์„œ ๊ฐ™์€ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋„๋ก ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ
  • ๊ฐ์ฒด ๋ณต์‚ฌ
    • Object.clone()
      • ๊ฐ์ฒด ๋ณต์‚ฌ๋Š” Cloneable์ด๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์˜ clone ํ•จ์ˆ˜ ์žฌ์ •์˜ ๊ฐ€๋Šฅ
    • static newInstance() ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์ƒ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Œ
    • ๊ฐ์ฒด ๋ณต์‚ฌ๋Š” ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” deep copy ์ˆ˜ํ–‰
@Override
    public ObjectCopyExample clone() throws CloneNotSupportedException {
        ObjectCopyExample objectCopyExample = (ObjectCopyExample) super.clone(); // shallow copy
        objectCopyExample.personArray = new Person[personArray.length];
        for (int i = 0; i < objectCopyExample.personArray.length; i++) {
//            objectCopyExample.personArray[i] = new Person();
//            objectCopyExample.personArray[i].setName(personArray[i].getName());
//            objectCopyExample.personArray[i].setGender(personArray[i].getGender());
//            objectCopyExample.personArray[i].setBirthdate(personArray[i].getBirthdate());
//            objectCopyExample.personArray[i].setRegistrationNumber(personArray[i].getRegistrationNumber());

            objectCopyExample.personArray[i] = personArray[i];
            // ๋ฐฐ์—ด ์ด๋ฆ„์€ ์ฃผ์†Œ ์ €์ •์ด ๋˜์–ด์žˆ์œผ๋ฏ€๋กœ ์ฃผ์†Œ ๋ณต์‚ฌ๊ฐ€ ๋จ (์ž˜๋ชป๋œ ๋ณต์‚ฌ)
        }
        return objectCopyExample;
    }

 

 

โญ์ƒ์„ฑ์ž

 

์ •์˜

  • new ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์†Œ๋“œ
  • ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ๋™์‹œ์— ์›ํ•˜๋Š” ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ
  •  ์˜ˆ์‹œ
    • ํšŒ์‚ฌ ๊ฐœ๋ฐœ๋ถ€์„œ์— 5๋ช… TO๊ฐ€ ์žˆ๋Š”๋ฐ 2๋ช…์€ ํ™•์ •์ด๊ณ  3๋ช…์€ ์•„์ง ์ฑ„์šฉ์ค‘์ด๋ผ๊ณ  ๊ฐ€์ •
    ์‚ฌ์›๋ฒˆํ˜ธ ์ด๋ฆ„ ๋ถ€์„œ ์ง์ฑ… ์ž…์‚ฌ๋…„๋„
    1 ํ™๊ธธ๋™ ๊ฐœ๋ฐœํŒ€ ๋Œ€๋ฆฌ 20220901
    2 ํ™๊ธธ์ˆœ ๊ฐœ๋ฐœํŒ€ ์ฃผ์ž„ 20210501
    3 ๊น€์ž๋ฐ” ๊ฐœ๋ฐœํŒ€ ๊ณผ์žฅ 20190801
    4 ์ธํ…”๋ฆฌ ๊ฐœ๋ฐœํŒ€ ํŒ€์žฅ 20200303
    5 ๋ฐ•์ œ์ด ๊ฐœ๋ฐœํŒ€ ์‚ฌ์› 20210303
    6 ์ตœ์‹ ์ž… ๊ฐœ๋ฐœํŒ€ ์‚ฌ์› ?
    7 ์ด์‹ ์ž… ๊ฐœ๋ฐœํŒ€ ๊ณผ์žฅ ?
    8 ? ๊ฐœ๋ฐœํŒ€ ? ?
    9 ? ๊ฐœ๋ฐœํŒ€ ? ?
    10 ? ๊ฐœ๋ฐœํŒ€ ? ?
    • ์‚ฌ์›๋ฒˆํ˜ธ๋Š” ์ž๋™์ƒ์„ฑ
    • ๋ถ€์„œ๋Š” ๊ฐœ๋ฐœํŒ€์ด ๊ธฐ๋ณธ๊ฐ’
    • 6, 7๋ฒˆ์€ public Employee(String name, String position)์œผ๋กœ ์ƒ์„ฑ
    • 8 ~ 10๋ฒˆ์€ public Employee()์œผ๋กœ ์ƒ์„ฑ

ํŠน์ง•

  • ์ƒ์„ฑ์ž ์ด๋ฆ„์€ ํด๋ž˜์Šค ์ด๋ฆ„๊ณผ ๋™์ผํ•˜๋ฉฐ ๋™์ผํ•˜์ง€ ์•Š์œผ๋ฉด ์‹คํ–‰ํ• ๋•Œ ์˜ค๋ฅ˜ ๋ฐœ์ƒํ•œ๋‹ค. 
  • ๋Œ€๋ถ€๋ถ„์˜ ํด๋ž˜์Šค์—์„œ ๋ณดํ†ต ์ƒ์„ฑ์ž๋Š” ์˜ค๋ฒ„๋กœ๋”ฉ์ด ๋งŽ์ด ๋˜์–ด์žˆ์Œ
    • ๊ฐ์ฒด ์ƒ์„ฑ์„ ๋‹ค์–‘ํ•˜๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•จ
  • ์ƒ์„ฑ์ž ์ •์˜๋ฅผ ํ•˜์ง€ ์•Š์€ ํด๋ž˜์Šค๋Š” ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž ์ž๋™ ์ƒ์„ฑํ•จ
  • ์ƒ์„ฑ์ž ์ •์˜๋ฅผ ํ•˜๋‚˜๋ผ๋„ ํ•œ ํด๋ž˜์Šค๋Š” ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์ž๋™์ƒ์„ฑ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋„ ์ •์˜ํ•„์š”ํ•จ
class A {}
class B {}

public class ConstructorNotGoodCode {
    private A a;
    private B b;
    // ์•ˆ์ข‹์Œ
    public ConstructorNotGoodCode() {
        a = new A();
        b = new B();
    }
    // ์ด ์ฝ”๋“œ๊ฐ€ ๋” ์ข‹์Œ
    public ConstructorNotGoodCode(A a, B b) {
        this.a = a;
        this.b = b;

 

โญํด๋ž˜์Šค

 

  • ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์„ค๊ณ„๋„
  • ์™œ ํ•„์š”ํ• ๊นŒ ?
    • ํ•™์ƒ์ด n๋ช… ์žˆ๋‹ค๊ณ  ๊ฐ€์ •
    • ๋ชจ๋“  ํ•™์ƒ์€ ํ•™๋ฒˆ / ์ด๋ฆ„ / ํ•™๋…„ / ์ƒ๋…„์›”์ผ์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž.
    • ํ•™์ƒ n๋ช… ๋ชจ๋‘ ๋™์ผํ•œ ํ•„๋“œ๋ฅผ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์— ํ‹€์„ ๋งŒ๋“ค์–ด๋†“๊ณ  ๊ทธ ํ‹€์„ ํ†ตํ•ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•จ
    • ์—ฌ๊ธฐ์„œ ํ‹€์ด ํด๋ž˜์Šค ๐Ÿ‘ฅ
      • ํด๋ž˜์Šค ํ‹€์„ ๋งŒ๋“ค์–ด๋†“๊ณ  ๊ฐ์ฒด๋ฅผ ์ฐ์–ด ์ƒ์‚ฐํ•จ
      • ํด๋ž˜์Šค ํ‹€์ด ๋™์ผํ•˜๋ฉด ๊ฐ์ฒด๋“ค์€ ๋™์ผํ•œ ํ•„๋“œ๋ฅผ ๊ฐ€์ง
  • ์„ ์–ธ๋ฒ•
    • ํ•˜๋‚˜ ์ด์ƒ ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•จ
    • ์ฒซ๋ฒˆ์งธ ๊ธ€์ž๋Š” ์ˆซ์ž๊ฐ€ ์˜ฌ ์ˆ˜ ์—†์Œ
    • ‘$’, ‘_’ ์™ธ์˜ ํŠน์ˆ˜๋ฌธ์ž ์‚ฌ์šฉ ๋ถˆ๊ฐ€
    • ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ๋ถˆ๊ฐ€
  • ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ•„๋“œ์™€ ๋ฉ”์†Œ๋“œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Œ
public class Member {
    // ํ•„๋“œ (๋ฐ์ดํ„ฐ, ๋ฉค๋ฒ„๋ณ€์ˆ˜)
    String name;
    int age;
    String gender;

    // ๋ฉ”์†Œ๋“œ (๋ฐ์ดํ„ฐ๋ฅผ ๋™์ž‘ํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ, ํ•จ์ˆ˜)
    public void increaseAge() { // ๋‚ด๋…„์ด ๋˜์–ด ๋‚˜์ด๊ฐ€ ํ•œ ์‚ด ๋” ๋จน์œผ๋ฉด ...? ๐Ÿฅฒ
        age += 1;
    }
}

 

โญ์ธ์Šคํ„ด์Šค

 

  • ํด๋ž˜์Šค๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋˜์–ด ์‚ฌ์šฉ๋˜๋Š” ์‹ค์ฒด
  • ๊ฐ์ฒด๋ฅผ ์†Œํ”„ํŠธ์›จ์–ด์— ์‹ค์ฒดํ™”ํ•˜๋ฉด ์ธ์Šคํ„ด์Šค๋ผ๊ณ  ๋ถ€๋ฆ„
  • ์ผ๋ฐ˜์ ์ธ ๋œป
    • ์ถ”์ƒ์ ์ธ ๊ฐœ๋…๊ณผ ๊ตฌ์ฒด์ ์ธ ๊ฐ์ฒด ์‚ฌ์ด์˜ ๊ด€๊ณ„์— ์ดˆ์  - ‘~์˜ ์ธ์Šคํ„ด์Šค’
    • ๊ฐ์ฒด๋Š” ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค
  • ์–ด๋–ค ์›๋ณธ (์ถ”์ƒ์ ์ธ ๊ฐœ๋…)์œผ๋กœ๋ถ€ํ„ฐ ‘์ƒ์„ฑ๋œ ๋ณต์ œ๋ณธ'
    • ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์†Œ๋น„ํ•˜๋ฉด์„œ ํ–‰๋™ํ•˜๊ณ  ์žˆ๋Š” ์‹ค์ฒด๋ฌผ
public class Main {
    public static void main(String[] args) {
        Student student1; // ๊ฐ์ฒด ๋ณ€์ˆ˜
        Student student2; // ๊ฐ์ฒด ๋ณ€์ˆ˜

        // ์ธ์Šคํ„ด์Šคํ™”
        student1 = new Student("0001", "Jonh",  30); // student1๋Š” Student ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šคํ™” (๊ฐ์ฒด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น)
        student2 = new Student("0002", "James", 50); // student2๋Š” Student ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šคํ™” (๊ฐ์ฒด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น)
    }
}

 

โญ์ •๋ฆฌ

 

  • ํด๋ž˜์Šค vs ๊ฐ์ฒด
    • ํด๋ž˜์Šค - ์„ค๊ณ„๋„
    • ๊ฐ์ฒด - ์„ค๊ณ„๋„๋กœ ๊ตฌํ˜„ํ•œ ๋ชจ๋“  ๋Œ€์ƒ
  • ๊ฐ์ฒด vs ์ธ์Šคํ„ด์Šค
    • ํด๋ž˜์Šค ํƒ€์ž…์œผ๋กœ ์„ ์–ธ๋˜์—ˆ์„ ๋•Œ ๊ฐ์ฒด๋ผ๊ณ  ๋ถ€๋ฆ„ Student student
      • ๊ฐ์ฒด๋ณ€์ˆ˜๋ผ๊ณ ๋„ ๋ถ€๋ฆ„
    • ๊ฐ์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋˜์–ด ์‹ค์ œ ์‚ฌ์šฉ๋  ๋•Œ ์ธ์Šคํ„ด์Šค๋ผ๊ณ  ๋ถ€๋ฆ„ student = new Student()
      • ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ๋กœ ์ธ์Šคํ„ด์Šค๋ผ๊ณ  ํ•จ