Javaクラスとオブジェクトの基本的な知識、3-

オブジェクト指向との間の差のためのプロセス

(構造化プログラミング)のためのプロセス

实际上是一个面向操作过程,首先设计一系列过程(算法)来求解问题(操作数据),然后再考虑存储数据的方式(组织数据)。即程序=算法\+数据结构。对应典型的计算机语言是c。

利点:

性能比面向对象高,调用速度快,比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发

短所:

没有面向对象易维护、易复用、易扩展

オブジェクト指向(OOP)

和面向过程的次序相反,首先要确定如何组织数据,然后再考虑如何操作数据的算法。面向对象的程序是由对象组成,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。用户不必关心对象的具体实现,只需要对象能够满足用户的需求即可。即程序=对象\+消息。

利点:

簡単に維持すると再利用、簡単に展開します

短所:

性能比面向过程低

クラスとオブジェクト

クラス(クラス)

是同一种对象的集合与抽象,是一组相关的属性和行为的集合。类中成员变量是事物(同一种对象集合)的属性,成员方法是事物的行为。定义类实际上就是定义类的成员(成员变量和成员方法)。变量描述的是事物的属性,方法描述的是事物的行为。

インスタンス変数

又叫做对象变量,成员变量。当通过类生成对象的时候才分配存储空间,再通过对象的引用来访问实例变量。各个对象之间的实例变量互不干扰。有默认初始值,存在于对象所在的堆内存中。

クラス変数

又叫静态变量,是一种用static关键字修饰的特殊成员变量。在类加载的时候就分配存储空间。 所有由这个类生成的对象都共用这个类变量。一个对象修改了变量,则所有对象中的这个变量的值都会发生改变。

ローカル変数

方法中或某局部块中声明定义的变量或方法的参数,只存在与创建他们的代码块中(\{ \})。如函数内,语句内。

方法の例

每个实例方法都有一个返回值类型,一个签名(指定方法名)

コンストラクタ

每个Java类至少含有一个构造方法以创建一个对象的标识,构造方法的作用是初始化实例变量。
  1. フォーマット。

    • メソッド名やクラス名

    • なし戻り値の型ません

    • いかなる特定の戻り値はありません

    
    student(){}
    
    
  2. 注意事項:

    • コンストラクタは、(過負荷)をオーバーライドすることができますが、(overwriter)書き換えることはできません。

    • あなたはクラスのコンストラクタには書いていない場合、システムは引数なしのデフォルトコンストラクタを提供します、書かれている場合、システムが使用できなくなります(引数なしのコンストラクタを書くことをお勧めします)

      • 役割:親クラスの特定のコンストラクタを呼び出すためのスーパーを(使用せずに、コンストラクタサブクラスの前に実行されるJavaプログラム)は、引数なしのデフォルトコンストラクタは、彼らはありません見つけることができない時に、親クラスを呼び出します。引数コンストラクタの実行ので、コンパイル時エラーが発生します。
    • コンストラクタは再帰的に呼び出すことはできません

  3. 変数の割り当ての方法のメンバーに:

    • 引数なしのコンストラクタ+セット、getメソッド

    • パラメータ化されたコンストラクタ

    
    class Student{
    
        private String name;
    
        private int age;
    
        public Student(){}
    
        public Student(String name, int age){
    
            this.name = name;
    
            this.age = age;
    
        }
    
        public void getName(){
    
            return name;
    
        }
    
        public String setName(String name){
    
            this.name = name;
    
        }
    
        public int getAge(int age){
    
            this.age = age;
    
        }
    
        public void getAge(){
    
            return age;
    
        }
    
    }
    
    class StudentDemo {
    
        public static void main(String[] args) {
    
            //创建对象,调用setter方法赋值
    
            Student s = new Student();
    
            s.setName("Ethan");
    
            s.setAge(16);
    
            //调用有参构造方法创建对象
    
            Student s = new Student("Ethan", 16);
    
        }
    
    }
    
    

オブジェクト(物体)

对象(object)是类的一个具体的实例。由类构造(construct)对象的过程叫做创建类的实例(instance)。

初期化プロセスオブジェクト

Student s = new Student(); //对象初始化
  1. Student.classは、メモリにロード
  2. メモリ内のスタックメモリでは、Sです
  3. アプリケーションのメモリ空間内のオブジェクトのためのヒープメモリで
  4. オブジェクトのデフォルトの初期化
  5. オブジェクト表示の初期化(例えば、プライベート名=「エタン」として初期化クラス割り当て、;)
  6. コンストラクタの割り当て
  7. 変数sに割り当てられたオブジェクトのアドレス

匿名オブジェクト

  1. こうした新しい学生などのオブジェクトの名前はありません、();
  2. それは、このような新しい学生()の研究()など、実際のパラメータとして渡すことができ;

パラメータ

  1. パラメータ:メソッドを定義するためのパラメータ。発呼者パラメータを受信するための手段は、メソッドが呼び出されたときにのみ渡され、仮想マシンは、メモリユニットを割り当てることになります。だから、唯一の有効な内部メソッド。
  2. 引数:呼び出すメソッドに渡されるパラメータ。まず、それは他の方法に転送する前に割り当てられています。

そして、送信値は、参照によって渡されます

  1. 値が渡される:メソッドが呼び出され、対応するパラメータ値にそれを引数を渡し、関数は、元の値のコピーを受信する場合、実質的に等しいの二種類が存在する(引数及びパラメータ)をメモリに。バックの動作方法は、引数の値を変更することなく変更されるパラメータです。
  2. 参照渡し:メソッド呼び出し、アドレス関数は、引数のアドレスを受信し、同じメモリアドレスを指し、実際のパラメータは、対応する仮パラメータに渡され(パラメータ値ではありません)。バックの動作方法は、引数に影響します。
  3. 注:Javaで渡された値のみ

仮パラメータと実パラメータには、この記事では良い話しています

https://yq.aliyun.com/articles/642055#

オブジェクト指向の三つの特徴

パッケージ

継承

ポリモーフィズム

パッケージ

  1. 役割:非表示の具体的な実装の詳細、および一般的なアクセス方法を提供

  2. 利点:

    • コードの再利用性を向上させます

    • セキュリティコードを改善

  3. デザインの原則:あなたは隠された詳細を知るために外の世界を望んでいません。反射技術は、パッケージ、クラス、メソッド、アクセス修飾子が封入されているプラ​​イベートです。

おすすめ

転載: www.cnblogs.com/EthanWong/p/12667055.html