DAY 8

KSH·2022년 4월 26일

OOP : Object oriented programming :객체 지향 프로그래밍

  • 현실을 모델링 하여, 프로그램을 만들자.
  • 병원 챠트, 학교 학생부.
  • 모델링의 예) 지도
  • 프로그래밍의 모델링 : 개념을 찾아라 -> 찾은 개념들을 정리해라 -> 프로그램의 형태로 바꿔라
  • 프로그래밍의 모델링 : 객체 지향 프로그래밍의 과정
  • 프로그래밍의 모델링 : 현실에서 필요한 부분만 발췌하라. 예)사람 - 환자와 의사
  • 환자 : 혈압, 혈액형, 간수치, 당수치, 병이름, 입원기록....
  • 의사 : 전공, 면허(자격증), 계좌번호(월급)
  • 프로그래밍의 모델링 : 개념 모델링 -> 논리 모델링 -> 물리 모델링
  • 자바가 만드는 물리 모델리의 결과는 class(~.java 파일)

class

  • class는 프로그램 실행의 단위. : class 단위로 메모리를 잡는다. : class가 통째로 메모리에 올라간다.
  • class : 설계도 : 아파트 설계도 한 장이면, 무한대로 건설을 할 수 있다.
  • class : 붕어빵틀 : 붕어빵틀 하나면, 무한대로 붕어빵 제조할 수 있다.
  • 예) String str1, str2, str3.....;
  • new를 통해 메모리에 올라간다.

class의 구성 요소

  • class는 프로그램 실행의 단위이기 때문에, 모든 코드는 class 내부에 와야 함.
  • 예외) 폴더 구조 : package, import.
  • package : class(~.java 파일)을 컴파일한 결과(~.class 파일)가 들어가는 폴더의 위치 지정.
  • package : 하나의 ~.java 파일에 하나의 표현만 온다.
  • import : 사용하기 위해 필요한 class(~.class 파일)이 어디에 있는지 가져올 위치를 지정.
  • import : 필요한 만큼 선언 가능.
  • package, import 선언 방법 : 상위폴더.하위폴더 : 폴더 이름은 소문자를 권장
  • member 변수 : class의 구성 요소 중, 데이터적 요소.
  • member method : class의 구성 요소 중, 행위적(동작) 요소.
  • 하나의 ~.java 파일에는 여러 class 선언 가능.
  • 하나의 ~.java 파일에는 단 하나의 public class만 선언(존재) 가능.
  • 하나의 ~.java 파일에 있는 public class의 이름으로 자바 파일의 이름을 선언해야 한다.

package : 현재의 ~.java 파일의 컴파일된 결과(~.class 파일)의 위치를 지정.

  • 상위 폴더에서 하위 폴더 순으로 표현(선언)

  • 상위 폴더에서 하위 폴더 순으로 .(dot)를 통해 폴더를 구분.

  • .(dot) : ~의 내부를 지칭. : 예) a.b -> a 안에 b 있다.

  • 하나의 ~.java 파일의 안에는 하나의 package만 온다

  • 자바에서 폴더는 소문자 선호

  • compile : javac -d . PackageObject.java
    -> PackageObject.class 파일을 ch042 폴더 내부의 packagetest 폴더에 넣어라.

    import : 현재 ~.java 파일에서 필요한 ~.class 파일의 위치를 지정.

  • 상위 폴더에서 하위 폴더 순으로 표현(선언)

  • 상위 폴더에서 하위 폴더 순으로 .(dot)를 통해 폴더를 구분.

  • .(dot) : ~의 내부를 지칭. : 예) a.b -> a 안에 b 있다.

  • 하나의 ~.java 파일에 여러 개의 import 선언 가능.

  • 자바에서 폴더는 소문자 선호

  • 예) import java.util.Scanner;
    -> java라는 이름의 폴더 내부에, util이라는 이름의 폴더 내부에, Scanner class를 가져와라.

  • 예) import java.util.*;
    -> java라는 이름의 폴더 내부에, util이라는 이름의 폴더 내부에, 모든 class를 가져와라.
    -> 사용 안하는, 필요 없는 class 파일도 가져온다. -> 효율이 떨어진다. -> 비권장

    멤버 변수 : class를 구성하는 변수 : class의 속성 : 예) 사람(class)의 이름(멤버 변수)처럼.
    지역 변수 : 메소드의 작업에 필요한 변수 : (), {}내부에 존재하는 변수
    -> 메소드가 실행될 때만 만들어 졌다가, 메소드가 종료되면 사라진다.
    -> 지역변수는 선언된 (), {} 밖에서는 접근이 안된다.

  • 멤버 변수와 지역 변수는 같은 이름을 사용할 수 있으나, 일반적으로 같은 변수명은 피함.

  • 멤버 변수와 지역 변수의 이름이 같을 때, 지역 변수를 먼저 적용.

0개의 댓글