Java

생활코딩 JAVA 객체 지향 프로그래밍 - (수업 소개+) 남의 클래스 & 남의 인스턴스

소댓 2023. 1. 8. 00:33

1. 수업소개

 

- 객체 지향 프로그래밍 : JAVA Object Oriented Programming

 

- method = function = subroutine = procedural = 절차 지향 프로그램 = procedural programming

> 메소드를 이용해서 작은 부품을 만들고, 이것을 결합하여 더 큰 프로그램을 만들어가는 테크닉

> 대표적으로 C언어에서 이 패러다임을 따르고 있지만, 몇몇 엔지니어들은 메소드 만으로 부족함을 느낌

> 연관된 메소드와 변수들을 결합하여 이름을 붙이고 정리정돈한 것이 '클래스'

>> 클래스를 중심으로 프로그램의 구조를 만들어가는 컴퓨터 프로그래밍 방법론이 '객체 지향 프로그래밍'

 

- 이 수업을 통해 코드를 단정하게 정리정돈할 수 있게 되고, 인스턴스를 만들 수 있게 될 것!

 

 

2. 남의 클래스 & 남의 인스턴스

 

- System.out.println(Math.PI);

> Math라는 클래스에 PI라는 변수가 있는 것이고 그 안에 3.14...의 구체적인 숫자가 적당한 정밀도로 적혀 있음

- System.out.println(Math.floor(1.8));

> floor는 소숫점을 내림하는 Math의 메소드 (> ceil은 올림)

 

- FileWriter f1 = new FileWriter("data.txt");

> data.txt에 파일을 저장하겠다고 하는 상태를 가지고 있는 fileWriter라는 클래스의 복제본이 생김

> 그 복제본을 f1이라는 변수에 담고, 그 복제본의 데이터 타입은 클래스 이름인 FileWriter가 됨

> FileWriter는 기본 자바 랭 패키지에 속하지 않기 때문에 임포트와 예외 옵션 지정이 필요

> new를 붙여서 복제본을 저장하도록

 

- class : System, Math, FileWriter
- instance : f1과 f2에 담긴 값 

> 예를 들어, 

class 종류 : 모든 교과서, 모든 공책, 모든 옷들

교과서 instance : 국어 교과서, 영어 교과서, 수학 교과서

공책 instance : 공책 1, 공책 2

옷 instance : 상의 1, 하의 1, 상의 2, 하의 2

>> instance는 내가 마음대로 이름을 지정해놓은 것. 필요할 때마다 저장해 놓은 instance 이름을 호출해서 내용을 가져올 수 있음

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
import java.io.FileWriter;
import java.io.IOException;
 
public class OthersOOP {
 
    public static void main(String[] args) throws IOException {
            //class : System, Math, FileWriter
            //instance : f1, f2
            System.out.println(Math.PI);
            System.out.println(Math.floor(1.8));
            System.out.println(Math.ceil(1.8));
            
            FileWriter f1 = new FileWriter("data.txt");
            f1.write("Hello");
            f1.write("Java");
            
            FileWriter f2 = new FileWriter("data2.txt");
            f2.write("Hello");
            f2.write("Java2");
            f2.close();
            
            f1.write("!!!");
            f1.close();
            
    }
 
}
cs