객체지향프로그래밍개념

지선·2023년 4월 12일

프로그래밍 언어의 역할?

사람의 언어와 기계어 사이에서 번역자와 같은 역할
고급언어, 저급언어로 구분

프로그래밍 언어

  1. 기계어
    0,1로 구성, 컴퓨터의 CPU는 기계어만 이해 가능
  2. 어셈블리어
    기계어 명령을 ADD, SUB, MOVE등과 같은 표현하기 쉬운 상징적인 단어인 니모닉 기호로 일대일 대응시킨 언어
  3. 고급언어
    사람이 이해하기 쉬우며, 복잡한 작업, 자료 구조, 알고리즘을 표현하기 위해 고안된 언어
    절차 지향 언어와 객체 지향 언어로 나뉨

소스와 컴파일

소스: 프로그래밍 언어로 작성된 텍스트 파일
컴파일: 소스 파일을 컴퓨터가 이해할 수 있는 기계어로 만드는 과정
윈도우기준(맥은 리눅스처럼 실행권한 O)
C: .c -> .obj -> .exe
자바: .java -> .class
C++: .cpp -> .obj -> .exe

지금 배우는 자바는 !!!!!
자바소스파일 (.java) 가
컴파일러 (javac.exe)를 통해
바이트코드파일 (.class) 가
자바 가상 기계 (java.exe)를 통해
기계어가 되어 실행됨 !!!

자바 가상머신

장점: 하드웨어나 운영체제를 가리지 않고 어디서나 동일한 프로그램을 실행
단점: 최적화된 바이너리에 비해 속도가 느릴 수 있고, 각 플랫폼에서 가상머신의 개발이 필요

자바의 특징

  1. WORA(Write Once Run Anywhere!!!)
    자바 가상 기계가 설치된 모든 컴퓨터에서 실행 (OS, H/W에 상관없음)
    +반대되는 개념: 플랫폼 종속성
    C와 같은 프로그램은 컴파일을 통해 기계어로 바꾸는데,
    이때 기계어가 CPU마다 다르고, 운영체제마다 API(Application Programming Interface)가 다르고, 운영체제마다 실행파일 형식이 다르기에 다른 환경에서 실행을 하고 싶어도 실행이 안됨.
  2. 객체 지향 언어 (Object Oriented Programmin)
    부품 객체 만들고 조합해 프로그램 완성
    ->캡슐화,상속,다형성 완벽 지원
  3. 함수적 스타일 코딩 지원
    람다식 지원 -> 코드 간결하게 작성, 컬렉션 요소를 필터링, 매핑, 그룹핑, 집계 처리 시 주로 사용
  4. 메모리 자동 관리
    사용하지 않는 객체 자동으로 메모리에서 제거 -> 핵심 기능 코드에 집중 가능
  5. 다양한 애플리케이션 개발 가능
  6. 멀티스레드 쉽게 구현 가능
    동시 여러 작업, 대용량 작업 빨리 처리할 경우
  7. 동적 로딩 지원
    미리 객체 만들지 x, 필요한 시점에 동적 로딩해 객체 생성
    유지 보수 시 특정 객체만 쉽게 수정 및 교체 가능
  8. 막강한 오픈 소스 라이브러리 풍부

자바 플랫폼

자바 프로그램이 실행되는 특정 환경, 가상머신+API로 구성
다양한 환경의 IT 시스템을 구축해야 하는 개발자와 사용자의 운영 환경에 따라 세분화
개발 분야에 따라 1.JAVA SE 2.JAVA ME 3.JAVA EE 4.JAVA Card, Java TV등으로 구분
-JDK:자바 프로그램 개발에 필요한 구성 요소 (컴파일러, 컴파일된 자바 API 클래스들이 들어 있는 모듈 파일, 샘플들) jdk는 jre+개발도구

-JRE:자바 프로그램 실행에 필요한 구성 요소 (JVM포함, 컴파일된 자바 API들이 들어있는 모듈 파일)
-API:자바 응용 프로그램 개발에 사용하는 라이브러리

기억해야할점

  1. 플랫폼 독립성
    자바 프로그램은 플랫폼에 상관없이 어디서든 실행 가능
  2. 클래스로 캡슐화
    클래스 내 모든 변수(필드), 함수(메소드) 구현해야 함
    클래스 안에서 새로운 클래스(내부 클래스)작성 가능
  3. 소스와 클래스 파일
    소스 파일 이름과 public으로 선언된 클래스 이름은 같아야함
    = Hello.java의 코드 헤더는 public class Hello{...}
  4. 실행 코드 배포
    실행코드는 한 개의 class파일이나 다수의 class파일로 구성
    여러 폴더에 걸쳐 다수의 클래스 파일로 구성된 경우 jar파일의 형태로 배포 가능
    자바 응용프로그램의 실행은 main()메소드에서 시작하며 하나의 클래스에 하나 이하의 main()메소드가 존재해야함
  5. 패키지
    관련된 여러 클래스를 하나의 패키지로 관리 (폴더 개념)

알아두면 좋은 것들 !
javac: 자바 소스를 바이트 코드로 변환하는 컴파일러
java: 자바 응용프로그램 실행기, 자바 가상 기계를 작동시켜 자바 프로그램 실행
javadoc: 자바 소스로부터 HTML 형식의 API document생성
jar: 자바 클래스들을 압축한 자바 아카이브 파일 생성
jmod: 자바 모듈 파일 만들거나 모듈 파일 내용 출력
jlink: 응용프로그램에 맞춘 맞춤형 JRE 제공
jdb: 자바 응용프로그램의 실행 중 오류를 찾는데 사용하는 디버거
javap: 클래스 파일의 바이트 코드를 소스와 함께 보여주는 디어셈블러

주석문:

// 
/*
~~~~~
*/

실행문:
변수 선언, 값 저장, 메소드 호출에 해당하는 코드
실행문 끝에는 반드시 세미콜론 붙여 끝 표시

profile
긍정왕되기

0개의 댓글