Spring/JAVA

Java 객체 지향 프로그래밍

alsruds 2023. 9. 29. 23:54
🐣생활코딩 강의🐣

JAVA 객체 지향 프로그래밍
https://www.youtube.com/playlist?list=PLuHgQVnccGMAb-e41kXPSIpmoz1RvHyN4

 

  • Class : { Method & Variable }

 

남의 클래스 & 인스턴스 사용하기

import java.io.FileWriter;
import java.io.IOException;

public class Main {
    public static void main (String[] args) throws IOException {

        // Math class 사용하기
        System.out.println(Math.PI); //3.141592653589793
        System.out.println(Math.floor(1.5)); //1.0
        System.out.println(Math.ceil(1.5)); //2.0

        // class 의 복제본을 만들어 사용하기
        FileWriter f1 = new FileWriter("data.txt");
        f1.write("Hello");
        f1.write(" Java");
        f1.close();
    }
}

· class : System, Math, FileWriter

· instance : f1

 

변수 & 메소드에 클래스 적용하기

☑️ class Print 도입 전

public class Main {
    public static String delimiter = "";
    public static void main(String[] args) {

        delimiter = "---";
        printA();

        delimiter = "***";
        printB();
    }

    public static void A() {
        System.out.println(delimiter);
        System.out.println("A");
    }

    public static void B() {
        System.out.println(delimiter);
        System.out.println("B");
    }
}

 

✅ class Print 도입 후

class Print{
    public static String delimiter = "";
    public static void A() {
        System.out.println(delimiter);
        System.out.println("A");
    }

    public static void B() {
        System.out.println(delimiter);
        System.out.println("B");
    }
}
public class Main {
    public static void main(String[] args) {

        Print.delimiter = "---";
        Print.A();

        Print.delimiter = "***";
        Print.B();
    }
}

 

클래스에 인스턴스 적용하기 (+ 생성자)

· instance = class 의 복제본

· 생성자 (constructor) : 초기의 작업을 수행

 

class Print {
    public String delimiter = "";
    public Print(String delimiter) { // 생성자
        this.delimiter = delimiter;
    }
    public void A() {
        System.out.println(this.delimiter);
        System.out.println("A");
    }
    public void B() {
        System.out.println(this.delimiter);
        System.out.println("B");
    }
}
public class Main {
    public static void main(String[] args) {
        Print p1 = new Print("===");
        Print p2 = new Print("^^^");

        p1.A();
        p2.A();
        p1.B();
        p2.B();
    }
}

 

메소드 활용 예제에 인스턴스 도입하기 (= 클래스의 인스턴스화)

· 이전 포스팅

2023.09.28 - [Spring/생활코딩 - JAVA1] - Java Method

 

Java Method

🐣생활코딩 강의🐣 JAVA method https://www.youtube.com/playlist?list=PLuHgQVnccGMDkdt3N9tT0aZPZx5-Ri2jo java method : 연관된 코드를 모아 정리하기 (≒ function) 이미 사용해본 메소드 public class Main { public static void main(

alsrudalsrudalsrud.tistory.com

 

class Accounting {
    public double valueOfSupply;
    public static double vatRate = 0.1; // 고정된 값은 static 으로 지정
    public Accounting(double valueOfSupply) {
        this.valueOfSupply = valueOfSupply;
    }
    public double getVAT() {
        return valueOfSupply * vatRate;
    }
    public double getTotal() {
        return valueOfSupply * getVAT();
    }
}
public class Main {
    public static void main(String[] args) {

        Accounting acc = new Accounting(10000.0);
        Accounting acc2 = new Accounting(20000.0);

        System.out.println("Value Of Supply = " + acc.valueOfSupply);
        System.out.println("Value Of Supply = " + acc2.valueOfSupply);

        System.out.println("VAT = " + acc.getVAT());
        System.out.println("VAT = " + acc2.getVAT());

        System.out.println("Total = " + acc.getTotal());
        System.out.println("Total = " + acc2.getTotal());
    }
}