Dorothy_YANG
With Dorothy
Dorothy_YANG
전체 방문자
오늘
어제
  • 분류 전체보기 (279)
    • Hi, I'm Dorothy 🕵️‍♂️ (21)
      • Slowly but Surely (18)
      • IT certifications (3)
    • 🤯TIL (80)
      • HTML & CSS (2)
      • Javascript & jQuery (13)
      • React (13)
      • C언어 (1)
      • JAVA (22)
      • Python (2)
      • Oracle SQL (10)
      • My SQL (5)
      • Spring (12)
    • 💻Programmers (17)
    • 🏫 Open API_JAVA (101)
    • 🌎 Project (10)
      • Shopping (10)
    • 💥 Error (24)
    • ⚙ Setting (23)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • Javascript
  • 오류해결
  • HTML
  • 서버등록
  • 콜라보레이토리
  • 백준
  • java
  • CSS
  • googlecolaboratory
  • 노마드코더
  • SQLD합격후기
  • Database
  • SQLD합격
  • SQL
  • 파이썬온라인
  • 이것이자바다
  • 연습문제
  • sql기간
  • 코딩앙마
  • oracle
  • spring
  • 독학후기
  • colaboratory
  • 기간설정
  • 비쥬얼스튜디오코드
  • AllArgsConstructor
  • 창초기화
  • 시작일종료일
  • Eclipse
  • 기간쿼리

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Dorothy_YANG

With Dorothy

[15일차] 객체지향 이론 / 객체형 / Object literal / JS 데이터타입
🏫 Open API_JAVA

[15일차] 객체지향 이론 / 객체형 / Object literal / JS 데이터타입

2022. 8. 10. 18:22
728x90

20220809(화)

  • 목차
    - 객체지향 이론
    - 객체형
    - Object literal
    - JS 데이터 타입

< 객체지향 이론 >

 

[과거] 게임 코딩하기

공격 함수/걷는 함수/뛰는 함수/방어 함수/용사 별 공격 함수/몬스터 별 공격 함수/등등 엄청나게 많이 필요함 미친 짓을 했다...!

                              ↓

[현재] 지극히 인간적이게 변한 게임 코딩

칼{공격력/빛남/모양 등} / 용사{공격/걷기/뛰기/방어 등} ➡ 용사{칼/방패/ 등등} 합치자! 

 

* 정보공학 구조적 기법 : 패러다임 자체를 바꾸지 않는 한, 게임 코드 같은 것을 실세계에 적용하려면 답이 없다..!

우리가 실제 세계와 컴퓨팅 월드를 일치시킨 것이다. 일치시킨 것이 분리시킨 것보다 훨씬 더 낫다.

  • C++탄생
    C언어의 기능을 갖다 쓰되, 기능을 합치는 기능을 만들어서 합친 것(DATA + FUNCTION)
객체지향의 특성
추상화 캡슐화
중요한 것이 무엇인가를 판단해서  뽑아낸 것을 잘 묶는 것
= 어떻게 만들것인가
(1) 반드시 필요한 데이터와
(2) 객체지향 설계에 부합하는 데이터를 뽑아내는 것
(1) 반드시 필요한 데이터와
(2) 객체지향 설계에 부합하는 데이터
(3) method : function 

 

  • 참고
    https://fierycoding.tistory.com/42
 

객체지향 프로그래밍과 그 특징(추상화, 캡슐화, 상속성, 다형성) / 파이썬 예시

객체(Object)? 객체지향 프로그래밍(OOP)? '객체(Object)' 하면 무엇이 떠오르시나요 어떤 분들은 일반적인 사물을 뜻하는 단어를 떠올릴 수도 있고, 어떤 분들은 예술용어인 오브제를 떠올릴 수도 있

fierycoding.tistory.com


< 추상화 >

  • 뽑아낼 때 key-value 형식으로 뽑아내는 것
    <script>
        const product = {
            name : 'mouse',
            type : 'wired',
            getName : function(){return product.name}
        };

        const ar = ['mouse', 'wired'];

    </script>

key : 보라색 / value : 빨간색 / Method : 노란색

 

  • 참고
    https://velog.io/@glass93/JavaScript-%EA%B0%9D%EC%B2%B4
 

JavaScript 객체

자바스크립트의 모든 것이 다 객체다

velog.io

 

[연습문제] 

더보기
// [추상화 연습문제]
// 학생을 추상화하여 객체를 만드세요.
// 학생은 성명, 학년, 반, 성별
// 국어성적, 영어성적, 수학성적
// 성적평균, 성적총점을 구하는 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
    '🏫 Open API_JAVA' 카테고리의 다른 글
    • [17일차] Scope / 호이스팅 / 문서 객체 / Event
    • [16일차] new 연산자 / prototype / JSON / Math.@
    • [14일차] 콜백함수 (forEach / map / filter) / arrow / time
    • [13일차] JS 함수 호출방식 / 가변 파라미터 / 디폴트 파라미터 / 콜백
    Dorothy_YANG
    Dorothy_YANG
    Slowly but Surely, 비전공 문과생의 개발공부

    티스토리툴바