개발 공부

1.객체지향 (정의) 본문

JAVA/배운 후

1.객체지향 (정의)

규율 위에 자유 2023. 6. 5. 17:24
객체지향언어란 
1."객체""지향"하는 "언어""객체 중심" 으로 돌아간다.

 

2.객체란
현실 세계에 독립적으로 존재(목적이 있고 가치가 있고 의미가 있는)하는 모든 것들을 의미한다.
현실세계에서는 객체들 간의 상호작용으로 돌아감 (내가 물을먹는다) 
 
3.객체지향 프로그래밍 : 현실세계의 객체들간의 상호작용을 프로그래밍을 통해 가상세계로 구현하는 것 

특징 - 추상화 / 캡슐화 / 다형성 / 상속 

 

4.구현하고자 하는 프로그램상의 객체를 만들기 위해서  클래스 라는 틀을 먼저 만들어야한다.
(클래스란? 각 객체들의 속성을 담아낼 그릇 같은존재)
클래스를 생성할 땐 추상화+캡슐화 접목해서 만들어야한다.

 

5.추상화 과정 = 프로그램을 만들기 전 핵심적인 개념 또는 기능을 간추려 내는 것

 

1) 내가 구현하고자 하는 프로그램에서 필요한 객체들을 생각해볼 것 ex)쇼핑몰
2) 그 객체들이 가지는 공통적인 속성, 기능들 모두 추출 => 이름, 나이 , 주소, 휴대폰 
3) 추출한 것들을 가지고 내가 구현하고자 했던 프로그램 "실질적인 목적"에 맞춰서 불필요한 속성, 기능들을 제거 한다. 
4)최종적으로 추려진 속성들을 어떤 자료형,어떤 변수명으로 사용할건지 생각하는 것
 
ex)학생관리 프로그램 
  • 1)학생관련객체(문동은,박연진,이사라) 
  • 2)공통적인 속성 및기능들 (이름,나이,주소,전화번호,키,몸무게,달리기속도,학년,반,국어점수,수학점수)
  • 3)학생 "인적사항"을 관리하는 프로그램 이라고한다면 : 이름,나이,주소,전화번호,학년,반                                             학생 "성적"을 관리하는 프로그램 이라고 한다면 : 이름,학년,반,국어점수,수학점수 등                                                   학생 "건강"을 관리하는 프로그램 :이름,학년,반,키,몸무게,달리기속도
4) 위와 상관없이 공통으로 추려진 객체를 "이름 , 나이 , 키" 라고한다면 자료형/변수명 지정
  이름 : String name; 
  나이 : int age; 
  키 : double height;
 
5.선정된 것들을 가지고 프로그래밍 
1)"변수" 만으로 프로그래밍을 한다면 - 변수는 하나의 값만 보관 하기 때문에 
ex)
문동은(String name1 = "문동은"; int age1 = 20; double height1 = 162.3;) 
박연진(String name2 = "박연진"; int age2 = 21; double height2 = 169.3;) 
이사라(String name3 = "이사라"; int age3 = 22; double height3 = 170.3;) 
 
단점 =>
수백명에 해당하는 해당하는 학생들을 만들 떄 수천개의 변수가 만들어짐
 
2)"배열" 만으로 프로그래밍을 한다면 - 배열은 하나의 자료형에 여러개의 값들을 보관할 수 있음
ex)
이름보관 String[] name = {"문동은","박연진","이사라"};
나이보관 int[] age = {"20","21","22"};
키보관 double[] height = {"162.3","169.3","170.3"};

단점 => 
기존의 학생 정보를 지워야할 때 앞으로 땡기는 과정을 진행해야함 작업시 정보가 틀어질 수 있다.
또한 새로운 학생이 오면 배열을 다시 생성하거나 복사해야함

 

 

 

해결방법은 다음 장에서

https://roqkfwkqmffhrm.tistory.com/55

 

'JAVA > 배운 후' 카테고리의 다른 글

객체(object)  (0) 2023.06.07
2.객체지향 (추상화)  (0) 2023.06.05
배열  (0) 2023.06.04
제어문(조건/반복/분기)  (0) 2023.06.02
제어문 (조건/반복/분기)  (0) 2023.05.31