절차(순차)지향 프로그래밍
- 기능 중심(객체지향 전에는 절차지향이 었음) / C 언어
- 위에서 아래로 순서대로 읽으면서 실행하기 때문에 코드를 이해하기 쉽다.
- 대부분 코드를 main 함수에 만든다. C는 처리 속도가 가장 빠른 언어
사용자의 요구조건이 복잡해 짐에 따라 전역변수(모든 명령어에서 사용 가능한 변수)를 사용했다.
c 기능에서는 사용 안 해야 하는데도 사용하다 보니 문제가 생기게 되었다.
a( 변수1 )
b( 변수2 ,변수3 )
c( )
…
절차지향에서는 조립의 개념이 없고, 기능을 조립할 수 없었다. 그런다 보니 코드가 반복되는 경우가 발생하고, 복잡한 프로그램의 경우 효율이 떨어지게 되었다.
객체지향 프로그래밍에서는 기능을 서로 조립할 수 있기 때문에 현재는 객체 지향 언어인 JAVA를 많이 사용하는 추세!
객체 지향 프로그래밍 언어
- java, c++
- 파이썬도 객체를 지향하지만 자바 입장에서 흉내 낸다고 생각할 수 있다.
- java나 c++같은 프로그램 언어를 "객체지향 프로그래밍"이라 한다.
객체지향이란?
Object Oriented Programming(OOP)
==> 현실세계의 모든 것(눈에 보이는 것, 눈에 보이지 않는 개념적(추상적))을 객체화 할 수 있다.
객체
=> 이 세상을 구성하고 있는 모든 것(눈에 보이는 것, 추상적 인 것)이 객체
=> 그러한 객체들은 그 객체를 구성하기 위한 여러가지 속성들로 구성되어 있다.
=> 특정한 기능(메소드) 포함 가능
=> 우리가 자바언어로 현실세계의 객체를 표현하려면 표현하고자 하는 객체에 대하여 속성과 동작을 분석해야 한다.
=> 그것에 대한 설계도를 만들어야 하는데, 이 설계도 만드는 것을 "클래스"라 한다.
클래스란?
객체를 표현(만들기)하기 위한 틀(설계도).
또, 클래스를 자바가 제공하는 기본자료형 만으로는 프로그램 하기가 복잡하여 내가 새로운 자료형을 만들어야 한다.
새로운 세트(자료형, 틀)을 하나 만들 수 있는데 새로운 자료형 만드는 것은 "클래스를 만든다"라고 이야기 할 수 있다.
사람 person
속성(멤버 변수)
이름 String name "홍길동"
나이 int age 26
동작(멤버 메소드)
먹는다 void eat(String some)
걷는다 void walk()
ㅁ 클래스를 사용하려면 그 클래스형의 객체를 생성하고 그 객체를 통해서 사용할 수 있다.
ㅁ 클래스에 변수에 값 넣기, 기능을 가져와 쓰는 문법
변수를 가져오는 경우에는 아래와 같이 쓴다.
p1.name = "홍길동";
만약 변수가 아닌 기능을 사용하는 것은
p1.setName("홍길동");
Person p1 = new Person();
p1.setName("홍길동");
p1.setAge(20);
p1.eat("햄버거");
p1.walk();
'Java | spring > 자바 객체지향' 카테고리의 다른 글
Java 프로그래밍 기본, 메소드 method (0) | 2019.05.07 |
---|---|
구현되지 않은, 추상클래스(abstract class) (0) | 2019.05.07 |
Java Class 구조, 접근명시자(static, public) (0) | 2019.05.07 |
상속과 다형성, 오버라이딩?! 오버로딩?! (0) | 2019.05.07 |
Java, 객체지향 프로그래밍! (0) | 2019.05.03 |
댓글