TIL(2022.03.16)
クラスメンバーVSオブジェクトメンバー=静的メンバーVSインスタンスメンバー
-ユニークなエンティティ
-属性に値がある
-コンセプト
-分類体系
-属性には値がありません
package ex03.abstraction02;
public class Mouse {
public String name;
public int age;
public static int countOfTail = 1; // 쥐 , 제리 , 미키의 꼬리는 모두 1개이므로 같은 유형의 모든 객체가 같은 값을 가지고 있다면 클래스 속성에 저장
public void sing() {
System.out.println(name +" 찍찍!!");
}
}
package ex03.abstraction02;
public class MouseDriver {
public static void main(String[] args) {
Mouse.countOfTail = 1;
Mouse mickey = new Mouse();
Mouse jerry = new Mouse();
Mouse mightyMouse = new Mouse();
//객체 참조 변수.속성명으로 접근
System.out.println(mickey.countOfTail);
System.out.println(jerry.countOfTail);
System.out.println(mightyMouse.countOfTail);
//클래스명.속성명으로 접근
System.out.println(Mouse.countOfTail);
}
}
クラスメンバー=静的メンバー=静的メンバー
- static
-クラスメンバーのプロパティ
通常、すべてのオブジェクトに同じ値がある場合に使用されます.
クラスがTメモリの静的領域に配置されると、クラス内部からメモリ領域が解放される.
-クラスメンバーメソッド
オブジェクトが存在するかどうかにかかわらず、使用できる方法
オブジェクトメンバー=インスタンスメンバー
-オブジェクトメンバーのプロパティ
属性名のみで、実際のメモリ領域はありません.hipzoneでオブジェクトを作成するときにメモリ領域を割り当てる
-オブジェクトメンバーメソッド
クラス属性とオブジェクト属性は別々に初期化されていません.整数は0、実数は0.0、論理はfalse、オブジェクトはnullに初期化されます.
ゾーン変数を個別に初期化
継承:再利用+拡張
継承された強力な機能
package ex03.inheritance01;
public class 동물 {
String myClass; // 객체 변수
public 동물() { // 생성자
myClass = "동물";
}
void showMe() { // 객체 메서드
System.out.println(myClass);
}
}
package ex03.inheritance01;
public class 포유류 extends 동물{
public 포유류() {
myClass = "포유류";
}
}
package ex03.inheritance01;
public class 조류 extends 동물 {
public 조류() {
myClass = "조류";
}
}
package ex03.inheritance01;
public class 고래 extends 포유류 {
public 고래() {
myClass = "고래";
}
}
package ex03.inheritance01;
public class 박쥐 extends 포유류{
public 박쥐() {
myClass = "박쥐";
}
}
package ex03.inheritance01;
public class 참새 extends 조류{
public 참새() {
myClass = "참새";
}
}
package ex03.inheritance01;
public class 펭귄 extends 조류 {
public 펭귄() {
myClass = "펭귄";
}
}
package ex03.inheritance01;
public class Driver01 {
public static void main(String[] args) {
동물 animal = new 동물();
포유류 mammalia = new 포유류();
조류 bird = new 조류();
고래 whale = new 고래();
박쥐 bat = new 박쥐();
참새 sparrow = new 참새();
펭귄 penguin = new 펭귄();
//상위 클래스에서만 showme()메서드를 구현했지만 하위 클래스 객체에서 showMe() 사용할 수 있다. => 재사용
animal.showMe();
mammalia.showMe();
bird.showMe();
whale.showMe();
bat.showMe();
sparrow.showMe();
penguin.showMe();
}
}
package ex03.inheritance01;
public class Driver02 {
public static void main(String[] args) {
// 하위클래스는 상위클래스이다.
동물 animal = new 동물();
동물 mammalia = new 포유류();
동물 bird = new 조류();
동물 whale = new 고래();
동물 bat = new 박쥐();
동물 sparrow = new 참새();
동물 penguin = new 펭귄();
animal.showMe();
mammalia.showMe();
bird.showMe();
whale.showMe();
bat.showMe();
sparrow.showMe();
penguin.showMe();
}
}
package ex03.inheritance01;
public class Driver03 {
public static void main(String[] args) {
// 하위클래스는 상위클래스이다.
동물[] animals = new 동물[7];
animals[0] = new 동물();
animals[1] = new 포유류();
animals[2] = new 조류();
animals[3] = new 고래();
animals[4] = new 박쥐();
animals[5] = new 참새();
animals[6] = new 펭귄();
for(int i=0;i<animals.length;i++) {
animals[i].showMe();
}
}
}
継承は関係です
ペンギン
マルチ継承とJava
=>ではなくインタフェースが導入されています.
Reference
この問題について(TIL(2022.03.16)), 我々は、より多くの情報をここで見つけました https://velog.io/@jisung/TIL2022.03.16テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol