オブジェクト指向
クラス
-
キーワードクラス定義を使用し、形式を固定します
-
フォーマット:
修飾子クラスクラス名{
メンバー変数1;
メンバー変数2;
…
メンバーメソッド1;
メンバーメソッド2;
…
}
public class Person {
// 1. 属性 : 事物的特征
// 特征以成员变量的形式存在的, 就是一个普通变量定义,但是位置"类中方法外"
// 成员变量也称为全局变量
String name;
int age;
// 2. 行为 : 功能,方法
// 方法可以不使用static关键字修饰, 只使用public即可
public void eat(){
System.out.println(name + "正在吃饭");
}
public void sleep(){
System.out.println(name + "沉睡了" + age + "年");
}
オブジェクトの使用
-
オブジェクトの作成:クラス名オブジェクト名=新しいクラス名(); //クラス自体は参照データ型です
-
メンバーの使用:
メンバー変数値を取得します。
変数=オブジェクト名。メンバー変数;
メンバー変数値の変更:
对象名.成员变量 = 新值;
メンバーメソッドへのアクセス:
オブジェクト名。メンバーメソッド(実際のパラメーター);
public static void main(String[] args) { // 1. 创建出一个Person类型对象, 表示一个具体的人类 Person p = new Person(); // 2. 使用对象名p.调用成员变量和方法功能 // 1) 给对象p中成员变量进行赋值 p.name = "张三"; p.age = 20; // 2) 调用eat和sleep方法功能 p.eat(); p.sleep(); // 2. 创建数第二个Person人类对象 // 注意 : 当创建出一个对象时, JVM虚拟机会为当前对象中的每一个成员变量进行默认的赋初值动作 // 根据不同的数据类型, 给不同初始值 // 整数 : 0 // 浮点 : 0.0 // 字符 : ' ' // 布尔 : false // 引用数据类型 : null Person p1 = new Person(); System.out.println(p1.name);// null System.out.println(p1.age);// 0 }
匿名オブジェクト
- 形式:新しいクラス名(実際のパラメーター);
- 特徴:1回のみ使用可能
カプセル化
-
private:はキーワードで、プライベートを意味します。
private int age;
2. getterメソッドとsetterメソッドは、プロパティがカプセル化された後に外部に提供される統一されたアクセスメソッドです。
ショートカットキーCtrl +挿入
3.このキーワード。どのオブジェクトがthisキーワードでメソッドを呼び出すか、thisキーワードはどのオブジェクト自体を示します
工法
Cat c = new Cat();
括弧は工法です
静的
静的は静的であり、クラスに属します
最初にロード
継承
- フォーマット:
クラスサブクラスは親クラスを拡張します{}
親クラス:継承クラス、スーパークラス、基本クラス
サブクラス:継承に使用されるクラス、派生クラス
例:
クラスDogはAnimalを拡張します{}
-
サブ親クラスのメンバー変数が繰り返し定義されていて、親クラスのメンバー変数を呼び出したい場合は、キーワードsuperを使用します。
super:キーワード。これは、現在の型の親クラス参照を意味します(superはサブクラス型で使用されます)
使用:super.parentクラスメンバー変数名;
superは、このクラスの現在のオブジェクトの親クラスへの参照を表します
オーバーライド
プライベートメソッドはオーバーライドできません
静的コードブロック
静的{
静态代码块的内容
}
1.場所:クラスメソッドの外
ポリモーフィズム
親タイプの変数名=新しいサブクラス名(実際のパラメーター);
人p = new Teacher();
コンパイルして左側を見て、実行して左側を見てください
多形のダウンキャスト
先生のお茶=(先生)p;
抽象メソッド
修飾子抽象戻り値タイプメソッド名(パラメーターリスト);
1.javaのキーワードabstractで変更されたクラスは抽象クラスです
public abstract class Aniaml {
public abstract void eat();
}
テンプレートクラス
public abstract class ComposionTemplate {
// 书写作文的方法
public void write(){
// 书写作文的标题
System.out.println("我的哥哥");
// 作文的正文,抽象方法,待补充
body();
// 书写作文的结尾
System.out.println("啊!这就是我的哥哥");
}
インターフェース
キーワードインターフェースとは
修飾子インターフェイスインターフェイス名{インターフェイスコンテンツ}
クラスはインターフェースを実装します
クラスはインターフェース名1、インターフェース名2を実装します... {クラスの内容}
単一の実現:
クラスはインターフェース実装を実装します
クラスはインターフェース名を実装します{
インターフェイスのすべての抽象メソッドをオーバーライドします
}
マルチ実装:
クラスが複数の異なるインターフェースを同時に実装する方法は、複数を実装することです
クラスはインターフェース名1、インターフェース名2を実装します... {
-
すべてのインターフェースのすべての抽象メソッドを書き直します
-
異なるインターフェースで同じメソッドによって宣言された抽象メソッドは、一度だけ書き直す必要があります
}
匿名の内部クラス
フォーマット:
新しいクラス名(実際のパラメーター){関連するメソッドの書き換え}
または
新しいインターフェース名(実際のパラメーター){関連するメソッドの書き換え}
例えば:
new Inter(){
@Override
public void method(){
}
};
最終キーワード
1. Finalは、final、finalを意味するキーワードです。これは、変更できないことを意味します。
2.最後のキーワード:クラス、メソッド、および変数を変更できます
オブジェクトクラス
親クラスを手動で明示的に定義せずに、自由に型を定義すると、このクラスの親クラスはObjectクラスになります。
クラスTeacherはPerson {}を拡張します
toStringメソッド
-
public String toString()
-
オブジェクトがそのようなアドレス値文字列を返すことは無意味であるため、サブクラスの場合、親クラスのこのメソッドをオーバーライドする必要があります。
-
ショートカットキーの生成:alt +挿入-> toStringメソッドをクリックします
等しいメソッド
public boolean equals(Object obj)
他のオブジェクトが「このオブジェクトと等しい」かどうかを示します
ショートカットキーの生成:alt +挿入-> equals()メソッドとhashCode()メソッドをクリックします。