【基礎ゼロ?1日で速攻Java開発】Day2 - オブジェクト指向の初知識

目次

序文

1. 可変パラメータの使用

2. コンストラクター

3. パッケージ

1. パッケージの作成

2. パッケージの利用

3. パッケージの命名規則

4. よく使われるパッケージ

5. アクセス修飾子

6. 継承 

7. スーパーキーワード

8. メソッド書き換えオーバーライド

最後に次のように書きます。


序文

私のJavaの基本的な学習は、ハン・シュンピン氏のJavaコースに続いて行われました~

この記事では、ビデオのエピソード 216 ~ 305 で Java と C++ の間のさまざまな知識ポイントを説明します。 

1. 可変パラメータの使用

Java は変数パラメータをサポートしています。いくつかの値を渡す必要があり、それらの値が同じ型である場合、

変数パラメータを使用して渡すことができます。例を参照してください。

public class VarMethod {
	public static void main (String[] args) {
		HspMethod m = new HspMethod();
		System.out.print(m.Sum(1, 5, 10));
	}
}

class HspMethod {
	// 我们可以把 nums 看成是一个数组
	int Sum(int... nums) {
		int sum = 0;
		for(int i = 0; i < nums.length; i++) {
			sum += nums[i];
		}
		return sum;
	}
}

変数パラメータを受け取るパラメータ nums を配列として扱うことができます。

このようにして、任意の整数値の加算を自由に計算できます。

出力:

出力が正常であることがわかります。

注意すべき点がいくつかありますので、

1. 変数パラメータは 0 以上にすることができます。

2. 通常のパラメータの場合、変数パラメータは最後に配置する必要があります。

3. 仮パラメータ リストに含めることができる変数パラメータは 1 つだけです。

2. コンストラクター

Java のコンストラクターは、C++ のコンストラクターとほぼ同じです。

コンストラクターの構文を見てみましょう。

public class Construct {
	public static void main(String[] args) {
		Person p = new Person("张三", 18);
		System.out.print(p._name + (p._age + ""));
	}
}

class Person {
	String _name;
	int _age;

	public Person(String name, int age) 
	{
		_name = name;
		_age = age;
	}
}

出力:

その他の点では、基本的には C++ と同じです。

3. パッケージ

1. パッケージの作成

Javaパッケージはディレクトリによって区別されますが、

IDEA でパッケージをビルドするには、第 1 レベルのディレクトリの区切り文字として「.」を使用します。

たとえば、src ディレクトリに 2 つのパッケージ (1 つは com.a、もう 1 つは com.b) をビルドしました。その結果は次のようになります。

このようにして、競合することなく同じ名前の 2 つのクラスを作成できます。

2. パッケージの利用

これら 2 つのパッケージを呼び出すコードを書いてみましょう。

package com.use;

import com.a.Dog;

public class Use {
    public static void main(String[] args) {
        Dog da = new Dog();
        System.out.println(da);

        com.b.Dog db = new com.b.Dog();
        System.out.println(db);
    }
}

最初の a パッケージを使用すると自動的にインポートされ、b パッケージを使用すると、

彼はcom.bを前線に持ってきた。

3. パッケージの命名規則

一般的に言えば、次のとおりです。

com.会社名.プロジェクト名.ビジネスモジュール名。

4. よく使われるパッケージ

java.lang 基本パッケージは自動的に組み込まれます。

java.util スキャナなど、システムで一般的に使用されるツールが含まれています。

java.net ネットワーキング パッケージ、Web 開発

java.awt (Java ページ開発、GUI) 

5. アクセス修飾子

1. 公開付きで修正、公開

2. protected で変更され、同じパッケージ内のサブクラスおよびクラスに対してオープン

3. デフォルト (変更なし)、同じパッケージ内のクラスに対してオープン

4. プライベートで装飾します。クラス自体のみがアクセスでき、公開されません。

ラオ・ハンさんの写真は次のとおりです。

6. 継承 

継承された構文:

クラスのサブクラスは親クラスを拡張します {

}

知らせ:

1) サブクラスは、親クラスによって定義されたプロパティとメソッドを自動的に持ちます (public および protected によって変更されている場合)。

2) 親クラスは、スーパークラス、基本クラスとも呼ばれます。

3) サブクラスは派生クラスとも呼ばれます。

例としてここにコードを書いてみましょう~

public class Extend {
    public static void main(String[] args) {
        Student student = new Student();
        student.Speak();
    }
}

class Person {
    protected String _name;
    protected int _age;
    protected int _money;

    public void Speak() {
        System.out.println("hello exthend!");
    }
}

class Student extends Person {
    private int _id;
}

サブクラス Student は親クラス person から継承します。

継承関連の詳細:

1) サブクラスオブジェクトはデフォルトで親クラスのデフォルトコンストラクタを呼び出します。それを指定したい場合は super を使用する必要があります

例えば:

public class Extend {
    public static void main(String[] args) {
        Student student = new Student();
    }
}

class Person {
    protected String _name;
    protected int _age;
    protected int _money;
    Person() {
        System.out.println("Person()");
    }

    Person(String name) {
        _name = name;
        System.out.println("Person(String name)");
    }
    public void Speak() {
        System.out.println("hello exthend!");
    }
}

class Student extends Person {
    private int _id;
    public Student() {
        super("张三");
        System.out.println("Student()");
    }
}

ここで、 super を使用して、親クラスを呼び出すパラメータ化された構造を指定できます。

2) super() と this() はどちらもコンストラクターの最初の行にのみ配置できます (共存できません)。

this() を使用すると、デフォルトのコンストラクターが他のオーバーロードされたコンストラクターを呼び出すことができます。

3) Ctrl + h を使用して、クラスの継承関係を確認します。すべてのクラスが Object クラスのサブクラスであることに注意してください。

デモをチェックしてください:

4) サブクラスは最大 1 つの親クラスのみを継承できます (Java は単一継承システムです)。

では、クラス A とクラス B が必要な場合はどうなるでしょうか?

最初にクラス A にクラス B を継承させてから、クラス A も継承することができます。 

7. スーパーキーワード

super は親クラスへの参照を表し、親クラスのプロパティ、メソッド、コンストラクターにアクセスするために使用されます。

super. 属性名; 親クラスの属性にアクセスできます

super.メソッド名(パラメータリスト); 親クラスのメソッドにアクセス可能

super (パラメータリスト); 親クラスのコンストラクタにアクセスできます(コンストラクタの最初の行にのみ配置できます)

注意すべき詳細:

1) 同名のメソッドがある場合は super を使用して呼び出しますが、同名のメソッドがない場合は直接呼び出します。

2) スーパーのアクセスは親クラスに限定されず、おじいちゃんクラスよりも上位にすることもできますが、スーパーは近接性の原則に従います。

スーパーとこれを比較すると次のようになります。

8. メソッド書き換えオーバーライド

Java のメソッドの書き換えは C++ のメソッドと同じです。

つまり、サブクラスのメソッドのパラメータ、戻り値、メソッド名が親クラスのメソッドと同じになる、つまりメソッドの書き換えです。

ただし、いくつかの注意点があります。

1) サブクラス メソッドは、親クラス メソッドのアクセス権を制限できません。

2) メソッドの書き換えとオーバーロードの違いの分析:

最後に次のように書きます。

以上が今回の記事の内容となります、読んでいただきありがとうございます。

何かを得たと感じたら、ブロガーに「いいね! 」を与えることができます。

記事の内容に抜けや間違いがある場合は、ブロガーにプライベートメッセージを送信するか、コメントエリアで指摘してください〜

おすすめ

転載: blog.csdn.net/Locky136/article/details/132046583