개발 공부
1.객체지향 (정의) 본문
객체지향언어란
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
'JAVA > 배운 후' 카테고리의 다른 글
객체(object) (0) | 2023.06.07 |
---|---|
2.객체지향 (추상화) (0) | 2023.06.05 |
배열 (0) | 2023.06.04 |
제어문(조건/반복/분기) (0) | 2023.06.02 |
제어문 (조건/반복/분기) (0) | 2023.05.31 |