객제지향언어
객체지향언어란?
작은 문제들을 해결할 수 있는 객체들을 만든 뒤, 이 객체들을 조합해서 큰 문제를 해결하는 상향식(Bottom-up) 해결하는 개발언어다.
객체지향언어의 주요 특징
-코드의 재사용성이 높다.
새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다.
-코드의 관리가 용이하다.
코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.
-신뢰성이 높은 프로그래밍을 가능하게 한다.
제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다.
클래스와 객체
클래스의 정의 : 클래스란 객체를 정의해 놓은 것이다.
클래스의 용도 : 클래스는 객체를 생성하는데 사용된다.
객체의 정의 : 실제로 존재하는 것 사물 또는 개념
객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다르다.
객체와 인스턴스
예를들어 자동차클래스로부터 만들어진 객체를 자동차클래스의 인스턴스라고 한다. 같은 의미이지만, 객체를 모든 인스턴스를 대표하는 포괄적인 의미를 가지고 있다. 인스턴스는 어떤 클래스로부터 만들어진 것인지를 강조하는 보다 구체적인 의미를 가지고 있다.
자동차는 인스턴스다 라기보다 자동차는 객체다. 라는 쪽이, 자동차는 자동차 클래스의 객체다라기 보다는 자동차는 자동차 클래스의 인스턴스다 라고 하는게 좋다.
클래스를 인스턴스화 시키면 인스턴스(객체)가 된다.
객체의 구성요소
속성 : 멤버변수, 특성, 필드, 상태
기능 : 메서드, 함수, 행위
예를들어 자동차의 속성에는 자동차의 브랜드, 차종, 차량 크기 등이 있다.
자동차의 기능에는 전진, 후진, 음악틀기 등이 있다.
인스턴스의 생성과 사용, 변수
https://github.com/happydhKim/MyDataStructureAlgorithm/blob/master/MyDataStructureAlgorithm/src/JavaOOP/MyMakeInstance.java
깃 허브 주소 (이걸 이해해야 객체지향 앞으로 나갈 수 있음)
JVM의 메모리 구조
응용프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 크게 3가지 영역 Method Area, call stack, heap으로 나누어 관리한다.
1.Method Area
2.Heap
3.call stack
댓글
댓글 쓰기