1.1 객체지향 프로그래밍
1.2 OOP Basic Concepts
- Java Script언어는 객체지향 언어가 아니라 프로토타입 기반 언어입니다.
- Java Script에서 객체지향이 이루어지게 하는 class는 prototype을 이용해 구현하는것 입니다.
1. 카드 받기
2. 비밀번호 확인
3. 비밀번호가 맞을시 -> 출금액 입력
비밀번호가 틀릴시 5번으로 이동
4. 통장잔액이 출금액수보다 크면 -> 출금실행
통장잔액이 출금액수보다 작으면 -> 5번으로 이동
5. 통장잔액,비밀번호 불일치로 알림을 띄우고 카드 반환
절차지향 언어 (Ex.C언어)
이러한 절차지향 프로그래밍이 아닌 객체지향 프로그맹은 하나의 틀을 만들고 그 틀을 바탕으로 다양한 객체를만드는 프로그래밍 패턴이다.
ATM{카드받기 ,
비밀번호 / 잔액 ,
출금,
통장돌려주기,}
고객{카드 기입,
비밀번호 입력,
출금희망금액 입력}
절차지향 프로그램에서 하나의 틀이되는 class를 만들고
그 틀을 바탕으로 만드는 객체(Object)를 instatnce라고한다.
class Human{
constructor(name,age){
this.name = name
this.age = age }
} //Human이라는 class(틀)을 만듬
const Baek =new Human('baek',26) // Baek이라는 변수에 Human(틀)에 name,age를 입력함
// *중요*
//틀을 사용할때는 new라고 틀 앞에 붙여주어야 한다.
Baek // {name : 'baek', age: 26}이라는 인스턴스를 생성함
Tip) 속성, 메소드
class 문법에는 속성과 메소드라는 용어가 사용된다.
사람으로 치면 그사람의 나이, 이름 특징은 속성이 되며
그사람이 하는 행동 먹다,잠들다,바라보다 등 행동적인 특징이 메소드라고 생각하면 편하겠다.
class Human{
constructor(name,age){
this.name = name
this.age = age }
sleep(){
console.log('${this.name}은 잠에 들었습니다') }}
//*메소드 호출법
//const Baek = Human('baek',26)
//Baek.sleep() //'baek은 잠에 들었습니다'
명칭 | 종류 |
---|---|
name | 속성 |
age | 속성 |
sleep | 메소드 |
Tip) Prototype,constrctor, this
위 3가지들은 설명하자면 위와 같다.
하지만 Java Script에서만 통하는 개념이다.
this는 좀 더 깊이 알아보고 다시 블로깅하겠다.
위 그림과 같이 Person이라는 class를 통해 person1이라는 객체를 생성하고 사용할수 있다.
이러한 특징으로 미루어 보다 우리는 4가지의 객체지향프로그래밍의 특징을 알 수 있었다.
class Person {
constructor( age, gender, interests) {
this.age = age;
this.gender = gender;
this.interests = interests;
}
}
undefined
class Teacher extends Person {
//extends를 사용해 person로부터 상속받는다.
constructor(first, last, age, gender, interests, subject, grade) {
super(first, last, age, gender, interests);
// super안에 상속받는 속성을 가지고온다
this.subject = subject;
this.grade = grade;
}
}