Object Review
class vs object
classは、より関連するデータを組み合わせたコンテナです.
has properties and functions. すなわち、フィールド(プロパティ)とメソッド(動作)があります.
すなわちclassは、より関連するデータを整理するフィールドとメソッドを統合した集合である.
時にはFieldsだけを縛っていて、その時はdataclassと呼ばれています.
-template; (フレームワーク:このようなデータが入ってくるかもしれません!)やるだけ.
-declare once; 宣言だけで
-no data in;
object:classを使用してobjectにデータを入れて作成します!
-instance of a class
-created many times
-data in
Classはオブジェクトを作成するフレームワークとして使用することをお勧めします.
how to decalre a class?
例)
Declaring object;
1.新しいオブジェクトを作成するときにnewキーを使用します.
const josh = new Person('joshua', 27);
josh.speak(); >> speak関数を呼び出します. getter & setter;
it is incapsulation; making a property private so that other people cannot change it?
コーヒーマシン自動販売機プログラムの例)cande-make-1 cup of coffee.getter and setter will prevent others' mistakes typing wrong/inappropriate input?
get&setキーワードを使用します.
setterを定義する瞬間age = age; 値を割り当てると、メモリに値を割り当てるのではなくsetterが呼び出されます.=>call stack error.
in order to prevent such error, use different names for the variables in getter&setter. 次は正しい例です.
ジェネレータを使用しないでフィールドを定義できます.定義、public、#の前にprivateを付けるだけです.
private=classの値は、表示可能、アクセス可能、変更可能ですが、外部から読み込んだり変更したりすることはできません.出力時はUndefindです.
継承と多様性
classは、より関連するデータを組み合わせたコンテナです.
has properties and functions. すなわち、フィールド(プロパティ)とメソッド(動作)があります.
すなわちclassは、より関連するデータを整理するフィールドとメソッドを統合した集合である.
時にはFieldsだけを縛っていて、その時はdataclassと呼ばれています.
-template; (フレームワーク:このようなデータが入ってくるかもしれません!)やるだけ.
-declare once; 宣言だけで
-no data in;
object:classを使用してobjectにデータを入れて作成します!
-instance of a class
-created many times
-data in
Classはオブジェクトを作成するフレームワークとして使用することをお勧めします.
how to decalre a class?
例)
class Person{
constructor(name, age) { // fields
this.name = name;
this.age = age;
}
speak() {
console.log(`${this.name}: hello!`);
}
}
Has fields (name & age) and a method called 'speak'. Declaring object;
1.新しいオブジェクトを作成するときにnewキーを使用します.
const josh = new Person('joshua', 27);
josh.speak(); >> speak関数を呼び出します.
it is incapsulation; making a property private so that other people cannot change it?
コーヒーマシン自動販売機プログラムの例)cande-make-1 cup of coffee.getter and setter will prevent others' mistakes typing wrong/inappropriate input?
get&setキーワードを使用します.
get age() { //get 키워드를 이용해서 값을 리턴할 수 있다.
return this.age;
}
set age(value) { //set 키워드를 이용해서 값을 설정할 수 있다.
this.age = value; // set은 값을 설정하기 때문에 value를 받아와야한다.
}
ageのgetterを定義する瞬間thisageメモリからageを読み込むのではなくgetterを呼び出します.setterを定義する瞬間age = age; 値を割り当てると、メモリに値を割り当てるのではなくsetterが呼び出されます.=>call stack error.
in order to prevent such error, use different names for the variables in getter&setter. 次は正しい例です.
```
set age(value){
if (value < 0) {
throw Error('age cannot be negative!');
}
this._age = value;
or this._age = value < 0 ? 0: value; // 이게 제일 깔끔한 표현식.
}
```
Public & Private:ジェネレータを使用しないでフィールドを定義できます.定義、public、#の前にprivateを付けるだけです.
private=classの値は、表示可能、アクセス可能、変更可能ですが、外部から読み込んだり変更したりすることはできません.出力時はUndefindです.
継承と多様性
Reference
この問題について(Object Review), 我々は、より多くの情報をここで見つけました https://velog.io/@joshuashin11/Object-Reviewテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol