프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.
클래스에서 정의한 속성(변수), 기능(메서드)를 가진 실체이다.
프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미하며 값을 저장할 변수와 작업을 수행할 메서드를 서로 연관된 것들끼리 묶어서 만든 것이다.
클래스에서 생성된 객체를 의미한다(관계 설명할 때 자주 사용됨).
ex) student1 객체는 Student class의 인스턴스다.
// student1 변수 선언, 생성
Student student1 = new Student();
참조값을 변수에 담아서 실제 메모리에 존재하는 객체에 접근할 수 있다.
객체 지향 프로그래밍은 추상화, 캡슐화, 상속, 다형성의 4가지 특징을 가진다.
Java Virtual Machine으로 자바 가상 머신이다.
OS에서 자바를 실행시킬 수 있는 가상 컴퓨터이다.
컴파일러에 의해 .java -> .class(바이트코드)로 변환
.class가 자바 프로그램 실행으로 JVM을 거쳐 바이트코드를 해석해 OS에 도달하게 된다.
즉, 바이트코드는 JVM에서 OS 상관없이 실행이 될 수 있다.
이번주는 자바가 객체지향 프로그래밍이라는 것과 클래스, 객체에 대해서 알게 되었다. 배워도 배워도 아직은 공부가 더 필요하다고 느껴지는 하루하루다. 분명 공부를 하는데,,, 눈에 보이지 않는다는 점이 안개 속에 갇힌 기분이 든다.