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)
ex)
이름보관 String[] name = {"문동은","박연진","이사라"};
나이보관 int[] age = {"20","21","22"};
키보관 double[] height = {"162.3","169.3","170.3"};
단점 =>
기존의 학생 정보를 지워야할 때 앞으로 땡기는 과정을 진행해야함 작업시 정보가 틀어질 수 있다.
또한 새로운 학생이 오면 배열을 다시 생성하거나 복사해야함
해결방법은 다음 장에서
https://roqkfwkqmffhrm.tistory.com/55