728x90
20220809(화)
- 목차
- 객체지향 이론
- 객체형
- Object literal
- JS 데이터 타입
< 객체지향 이론 >
[과거] 게임 코딩하기
공격 함수/걷는 함수/뛰는 함수/방어 함수/용사 별 공격 함수/몬스터 별 공격 함수/등등 엄청나게 많이 필요함 미친 짓을 했다...!
↓
[현재] 지극히 인간적이게 변한 게임 코딩
칼{공격력/빛남/모양 등} / 용사{공격/걷기/뛰기/방어 등} ➡ 용사{칼/방패/ 등등} 합치자!
* 정보공학 구조적 기법 : 패러다임 자체를 바꾸지 않는 한, 게임 코드 같은 것을 실세계에 적용하려면 답이 없다..!
우리가 실제 세계와 컴퓨팅 월드를 일치시킨 것이다. 일치시킨 것이 분리시킨 것보다 훨씬 더 낫다.
- C++탄생
C언어의 기능을 갖다 쓰되, 기능을 합치는 기능을 만들어서 합친 것(DATA + FUNCTION)
객체지향의 특성 |
|
추상화 | 캡슐화 |
중요한 것이 무엇인가를 판단해서 | 뽑아낸 것을 잘 묶는 것 = 어떻게 만들것인가 |
(1) 반드시 필요한 데이터와 (2) 객체지향 설계에 부합하는 데이터를 뽑아내는 것 |
(1) 반드시 필요한 데이터와 (2) 객체지향 설계에 부합하는 데이터 (3) method : function |
< 추상화 >
- 뽑아낼 때 key-value 형식으로 뽑아내는 것
<script>
const product = {
name : 'mouse',
type : 'wired',
getName : function(){return product.name}
};
const ar = ['mouse', 'wired'];
</script>
[연습문제]
더보기
// [추상화 연습문제]
// 학생을 추상화하여 객체를 만드세요.
// 학생은 성명, 학년, 반, 성별
// 국어성적, 영어성적, 수학성적
// 성적평균, 성적총점을 구하는 method가 필요
const student = {
name : 'Dorothy',
grade : 2,
class : 6,
gender : 'female',
score : [80, 90, 90], // 성적을 배열로 나타내기
// 성적평균, 성적총점 구하는 method
getTotal : function()
{
let total = 0;
for (let val of this.score)
{
total += val;
}
return total;
},
getAvg : function()
{
return this.getTotal() / this.score.length;
}
};
console.log(student.name);
console.log(student.grade);
console.log(student.class);
console.log(student.gender);
console.log(student.getTotal());
console.log(student.getAvg().toFixed(2));
< 객체형 - Object type>
- JavaScript의 거의 모든 객체는 Object의 파생 인스턴스
- Object는 {}로 생성.
- key-value 형식으로 데이터 유지. (key : value) - 객체형의 선언 및 연산
객체 내부에는 Primitive type뿐만 아니라 객체형도 들어갈 수 있다 - 전역 영역에 올라간다는 것
이 웹 브라우저가 종료될 때까지 존재해야 한다.
< Object literal >
- Javascript에서는 객체를 만드는 여러 가지 방법이 존재
const obj = {};와 같은 객체를 ES6에서 Object literal이라 함 - 메서드 축약 표현
메서드의 이름과 키를 동일한 이름으로 사용할 경우 메서드를 축약하여 표현
ex) printHello : function(){} ➡ printHello(){} - Object의 순회
- object의 속성의 순서는 무순서
- 배열처럼 순차적인 인덱스가 없음
- 순회하기 위해서 for ~ in 문을 사용
ex) const obj = { a : 1, b : 2, c : 3 };
for (const key in obj){console.log(ket + ':' + obj [key]);}
< 자바스크립트의 데이터 타입 >
Datatype (in JavaScript)의 두 가지 종류 | ||
종 류 | Primitive Data-type (기본 Data-type) | Object Data-type |
영 역 | stack, global 영역 | Heap 영역(에 올라가기만 하면 object가 된다!) Heap에 allocation 하려면 (1) Object literal (2) new |
느 낌 | 기본적으로 string, number, boolean 같은 것들 | 좀 더 복잡하고 복합적이고 등치도 좀 있음 |
예 시 | reference | Object 기본 + ( Array / Class ) 양념쳐서 파생 |
비 고 | - | *Object에 올라가는 세가지 (올라가면 object가 된다!) 1) 우리가 원하는 Attribute(key, value) = data 2) 우리가 원하는 function(method) 3) 기타 설계상 필요한 것들, 기타 등의 세트 = prototype |
728x90
'🏫 Open API_JAVA' 카테고리의 다른 글
[17일차] Scope / 호이스팅 / 문서 객체 / Event (0) | 2022.08.12 |
---|---|
[16일차] new 연산자 / prototype / JSON / Math.@ (0) | 2022.08.10 |
[14일차] 콜백함수 (forEach / map / filter) / arrow / time (0) | 2022.08.09 |
[13일차] JS 함수 호출방식 / 가변 파라미터 / 디폴트 파라미터 / 콜백 (0) | 2022.08.05 |
[12일차] for 응용 / function 응용 / Debugger (0) | 2022.08.05 |