[Java] ํด๋ž˜์Šค (1)

2024. 12. 31. 08:19ยท๐Ÿ‘จ‍๐Ÿ’ป Programming/Java

Object(๊ฐ์ฒด)

  • OOP์—์„œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋‹จ์œ„์š”์†Œ์ž…๋‹ˆ๋‹ค.
  • ์ž๋ฐ”์—์„œ๋Š” ํด๋ž˜์Šค๋ผ๋Š” ๋ฌธ๋ฒ•์œผ๋กœ ๊ฐ์ฒด๋ฅผ ๊ธฐ์ˆ ํ•˜๊ณ , ํด๋ž˜์Šค๋Š” ๋ฐ˜๋“œ์‹œ ์กด์žฌ ์ด์œ ์™€ ๋ชฉ์ ์ด ๋ช…ํ™•ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  • ํด๋ž˜์Šค์—์„œ ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ ์ธ์Šคํ„ด์Šค๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

*OOP(Object-Oriented Programming)

  • ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ์ฒด์˜ ์ง‘ํ•ฉ์ฒด๋กœ ๋ณด๊ณ  ๊ฐ์ฒด๋“ค์€ ์„œ๋กœ ๊ด€๊ณ„๋ฅผ ๊ฐ–๋Š”๋‹ค๋Š” ๊ด€์ ์„ ๊ฐ–๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํด๋ž˜์Šค

  • ํด๋ž˜์Šค ์•ˆ์— ์žˆ๋Š” ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜๋ฅผ ๋ฉค๋ฒ„๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.
  • ๋” ์ž์„ธํžˆ ๋ณ€์ˆ˜๋Š” ํ•„๋“œ, ํ•จ์ˆ˜๋Š” ๋ฉ”์„œ๋“œ๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.
  • ์„ ์–ธ๊ณผ ์ •์˜๊ฐ€ ๊ณต์กดํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.
  • ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์‚ฌ๋žŒ์„ ๋ฐฐ๋ คํ•˜์—ฌ ์ž‘์„ฑํ•˜๋Š” ๋Šฅ๋ ฅ์ด ํ•„์ˆ˜์ ์œผ๋กœ ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค.
  • ํด๋ž˜์Šค๋Š” constructor, field, method๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์ ‘๊ทผ์ œ์–ด์ž

  • public : ์™ธ๋ถ€ ์ ‘๊ทผ ํ—ˆ์šฉ
  • protected : ๊ฐ™์€ ํŒจํ‚ค์ง€ ๋ฐ ํŒŒ์ƒ ํด๋ž˜์Šค์˜ ์ ‘๊ทผ ํ—ˆ์šฉ
  • default : ๊ฐ™์€ ํŒจํ‚ค์ง€ ์†Œ์† ํด๋ž˜์Šค๋งŒ ์ ‘๊ทผ ํ—ˆ์šฉ, ์•„๋ฌด ์ ‘๊ทผ ์ œ์–ด์ž๋ฅผ ์‚ฌ์šฉ ์•ˆํ–ˆ์„ ์‹œ default
  • private : ๋‚ด๋ถ€์—์„œ๋งŒ ์ ‘๊ทผ ํ—ˆ์šฉ

*๊ธฐ๋ณธ์ ์œผ๋กœ ํ•„๋“œ๋“ค์€ private ์„ ์–ธ์„ ํ•˜์—ฌ ์บก์Аํ™”๋ฅผ ์‹œํ‚ค๊ณ , getter์™€ setter๋กœ ํ†ต์ œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

this

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

์˜ˆ์ œ

class MyString {
    private byte[] string;

    public String getString() {
        if (string == null || string.length == 0) return "(null)";
        return new String(string);
    }

    public void setString(String param) {
        this.string = param.getBytes();
    }

    public int length() {
        if (string == null) return 0;
        return this.string.length;
    }

    public int compareTo(String param) {
        if (string == null) return -1;
        return param.compareTo(new String(string));
    }
}

public class Main {
    public static void main(String[] args) {
        MyString str = new MyString();
        System.out.println(str.length()); // 0
        System.out.println(str.getString()); // (null)

        str.setString("Hello, world!");
        System.out.println(str.getString()); // Hello, world!
        System.out.println(str.length()); // 13
        System.out.println(str.compareTo("Hello, world!")); // 0
        System.out.println(str.compareTo("Hello, world")); // -1
    }
}

์ถœ์ฒ˜

  • ๊ธฐ์ดˆ ํƒ„ํƒ„! ๋…ํ•˜๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” Java - Part 2 : OOP์™€ JVM

'๐Ÿ‘จโ€๐Ÿ’ป Programming > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Java] ํด๋ž˜์Šค (2)  (0) 2025.01.04
[Java] String ๊ฐ์ฒด๊ฐ€ ๋น„์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•  (0) 2024.10.27
'๐Ÿ‘จ‍๐Ÿ’ป Programming/Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Java] ํด๋ž˜์Šค (2)
  • [Java] String ๊ฐ์ฒด๊ฐ€ ๋น„์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•
jinnkimm7
jinnkimm7
[Nothing changes if nothing changes] ๊ฐœ๋ฐœ ๊ด€๋ จ ๊ธ€ ์œ„์ฃผ๋กœ ํฌ์ŠคํŒ… ํ•  ์˜ˆ์ •์ด๋ฉฐ, ๊ทธ ๋ฐ–์— ์ž๊ธฐ๊ฐœ๋ฐœ/์ผ์ƒ/์—ฌํ–‰์— ๊ด€ํ•œ ์ •๋ณด๋„ ํฌ์ŠคํŒ… ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
  • jinnkimm7
    Jin's log
    jinnkimm7
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • โœ๏ธ๊ธ€์“ฐ๊ธฐ ๐Ÿฆบ๊ด€๋ฆฌ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (83)
      • ๐Ÿ“š Record (0)
      • ๐Ÿ‘จ‍๐Ÿ’ป Programming (9)
        • JavaScript (2)
        • React (1)
        • Next.js (2)
        • HTML (0)
        • CSS (1)
        • Java (3)
        • Spring (0)
      • ๐Ÿ’ป CS (11)
        • Computer Architecture (1)
        • Operation System (2)
        • Data Structure (0)
        • Algorithm (2)
        • Database (5)
        • Network (1)
      • โš™๏ธ Tool (12)
        • AWS (2)
        • git (3)
        • VS Code (2)
        • IntelliJ (0)
        • Eclipse (1)
        • Excel (4)
      • ๐Ÿ“ Coding Test (37)
        • Programmers Lv0 (6)
        • Programmers Lv1 (1)
        • Programmers Lv2 (2)
        • Programmers Lv3 (1)
        • ๋ฐฑ์ค€ Bronze (0)
        • ๋ฐฑ์ค€ Sliver (3)
        • SQL (24)
      • ๐Ÿ“– Study (9)
      • ๐Ÿ”  English (0)
      • ๐ŸŽ’ Travel (0)
      • ๐Ÿ’ฐ Finance (0)
      • ๐Ÿ“Œ Etc (3)
  • ๋งํฌ

    • Resume
  • ์ธ๊ธฐ ๊ธ€

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • ํƒœ๊ทธ

    tanstackQuery
    next.js
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    AWS
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ๋ฐ˜๋„์ฒด8๋Œ€๊ณต์ •
    ๋ฐฑ์ค€
    99ํด๋Ÿฝ
    vscode
    ํด๋ž˜์Šค
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    ์˜ค๋ผํด
    java
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ์—ฐ์Šต
    MYSQL
    ์˜ค๋ธ”์™„
    git
    ํ•ญํ•ด99
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ์ค€๋น„
    SQL
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
jinnkimm7
[Java] ํด๋ž˜์Šค (1)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”