코딩하렴

JAVA란 무엇인가?

by 으렴



언어의 발전 단계

C : 절차 지향 언어


사람이 생각하는 방식을 언어로 표현 했다고 생각하면 된다.


예를들어 밥을 먹으려면 '숟가락을 잡고, 들어서, 밥을 퍼서, 입으로 가져간다' 이와 같은 과정들이 절차가 있다고 해서 절차 지향 언어라고 보면 된다.



C++ : 절차 지향 언어 / 객체 기반 언어 / 객체 지향 언어 / 일반화 개행


프로젝트가 점점 커져가며 절차 지향 언어로는 각기 기능들을 효율적으로 관리하기 벅차졌다.


그래서 '모듈화'라는 개념이 등장하기 시작한다.



JAVA : 완전한 객체 지향 언어 (Object Oriented Program)


Java에서 드디어 객체, 각 기능을 나누어서 관리하기 위하여 OOP라는 개념이 만들어 진다.





객체(Object)?


그래서 객체가 뭔데? 하면 사람이 말하는 모든 것은 객체라고 할 수 있다.


존재하는 모든 것은 객체이다.


컴퓨터도 객체 열쇠도 객체 물도 객체


하지만 추상적인 개념은 객체라고 하기 어렵다. 객체화를 위해서 구체화가 필요하다.


구체화를 한다면 추상적인 개념도 객체가 될 수 있다.


이때 독립화가 불가능하다면 그것은 객체가 아니다.



- 사람들이 가진 개념을 묶어 구체화 시킨 것.


- 추상적인 개념은 객체가 아님 구체화가 가능해야 함.


- 사람이 정의한 것은 모두 객체이다. 독립화가 불가능 하다면 객체가 아니다.





Object Oriented Program의 특징


encapsulation 캡슐화 / 은닉화

C처럼 기능(함수)으로 이루어진 것이 아니라 Data위주

선언한 그 곳에서만 사용이 가능하다

Data 보호 /  은닉 목적


abstract 추상화

추상적인 것을 구체화하는 행위

설계, 기획 단계

계속해서 생각하고 구체화(표현)시켜야 한다. 창의력(=설계,기획)


Inheritance 상속

Java는 100% 상속 구조이다.

관계가 형성되어야 상속 가능 (확장 가능성)

코드의 확장, 재활용성이 높음.


Polymorphism 다형성

형태가 많은 성질

하나로 다수를 만족 시키기 

Ex. 

Overloading : 같은 함수 명을 사용하되, 매개변수가 여러개

Overriding : 상속받은 자식이 부모의 것을 재정의 한다.

Dynaminc Binding(동적 바인딩) : 프로그램이 실행(진행) 되면서 객체의 동작이 결정되는 것.



개발자의 편리성 / 가독성이 높아짐.


사용자의 만족도를 높게 만들어야 한다(객체 사용자) →어떤식으로 쓸 것인가 고민!


java에 대한 이미지 검색결과

JAVA의 특징

- Java는 원래 임베디드(embedded) 목적으로 만듦 (작은 플랫폼)



- 이식성이 좋다 (플랫폼에 독립적)


JVM(Java Virtual Machine : 자바 가상 머신)을 통해서 OS와 동작



API 제공을 지원한다.


프로그램을 개발하기 위해 API를 찾는 것은 중요하다. Java는 API가 많음!





java 색감 따서 타이틀 만들었는데 박카스같다.. 후...


여담으로 java를 만드신 분이 커피를 좋아해서 java라고 이름지었다는데 믿거말

사이트의 정보

코딩하렴

으렴

활동하기