항해99 2주차 WIL

백종석·2022년 5월 25일
0

[항해99] WIL

목록 보기
1/5
post-thumbnail

이번 WIL의 키워드

1.객체지향 프로그래밍이란?

2.JVM


1.객체지향 프로그래밍이란?


기본개념

'실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다.'라는 것이다

1.객체지향언어

  • 객체지향언어는 기존의 프로그래밍언어와 다른 전혀 새로운 것이 아니라, 기존의 프로그래밍 언어에 몇 가지 새로운 규칙을 추가한 보다 발전된 형태의 것이다.

    주요 특징

    1. 코드의 재사용성이 높다.
      • 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다.
    2. 코드의 관리가 용이하다.
      • 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.
    3. 신뢰성이 높은 프로그래밍을 가능하게 한다.
      • 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다.

2.클래스와 객체

1.클래스와 객체의 정의와 용도

클래스의 정의 클래스란 객체를 정의해 놓은 것이다.
클래스의 용도 클래스는 객체를 생성하는데 상용된다.

  • 프로그래밍에서의 객체는 클래스에 정의된 내용대로 메모리에 생성된 것을 뜻한다.

    객체의 정의 실제로 존재하는 것, 사물 또는 개념
    객체의 용도 객체가 가지고 있는 기능과 속성에 따라 다름
    유형의 객체 책상, 의자, 자동차, TV와 같은 사물
    무형의 객체 수학공식, 프로그램 에러와 같은 논리나 개념

  • 클래스는 객체를 생성하는데 사용될 뿐, 객체 그 자체는 아니다.

2.객체와 인스턴스

  • 클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화(instantiate)라고 하며, 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스(instance)라고 한다.

3.객체의 구성요소 - 속성과 가능

  • 객체는 속성과 가능, 두 종류의 구성요소로 이루어져 있으며, 일반적으로 객체는 다수의 속성과 다수의 기능을 갖는다.
    • 즉, 객체는 속성과 기능의 집합이라고 할 수 있다.
    • 객체가 가지고 있는 속성과 기능을 그 객체의 멤버라고 한다.

      속성(property) 맴버변수(member variable), 특성(attribute), 필드(field), 상태(state)
      기능(function) 메서드(method), 함수(function), 행위(behavior)



2.JVM(Java Virtual Machine)


JVM은 'Java Virtual Machine'을 줄인 것으로 자바를 실행하기 위한 가상 기계라고 할 수 있다.

  • 가상 기계(Virtual Machine)는 소프트웨어로 구현된 하드웨어를 뜻하는 넓은 의미의 용어이며, 컴퓨터의 성능이 향상된에 따라 점점 더 많은 하드웨어들이 스프트웨어화되어 컴퓨터 속으로 들어오고 있다.
  • 자바로 작성된 어플리케이션은 모두 이 가상 컴퓨터(JVM)에서만 실행되기 때문에, 자바 어플리케이션이 실행되기 위해서는 반드시 JVM이 필요하다.

  • 일반 애플리케이션의 코드는 OS만 거치고 하드웨어로 전달되는데 비해 Java애플리케이션은 JVM을 한 번 더 거치기 때문에, 그리고 하드웨어에 맞게 완전히 컴파일된 상태가 아니고 실행 시에 해석(interpert)되기 때문에 속도가 느리다는 담점을 가지고 있다.

  • 일반 애플리케이션은 IS와 바로 맞붙어 있기 때문에 OS종속적이고, 다른 OS에서 실행시키기 위해서 애플리케이션을 그 OS에 맞게 변경해야 한다.

  • 반면 Java 애플리케이션은 JVM하고만 상호작용을 하기 떄문에 OS와 하드웨어에 독립적이라 다른 OS에서도 프로그램의 변경 ㅇ벗이 실행이 가능하다.

    • 단, JVM은 OS에 종석적이기 때문에 해당 OS에서 실행가능한 JVM이 필요하다.

profile
항해중인 우당탕탕 코린이

0개의 댓글