1. 程式人生 > 其它 >[CSP-S 2021] 廊橋分配 題解

[CSP-S 2021] 廊橋分配 題解

面向物件概述

什麼是物件?

一切客觀存在的事物都是物件

我們所在的客觀世界就是由物件組成:

小物件構成大物件

物件之間互相呼叫方法

物件和類

什麼是物件?

計算機中的物件,就是一塊連續的記憶體空間。

每建立一個物件,都要在記憶體中分配一塊空間。

記憶體中儲存的資料是生活中的物件的抽象。

有用的屬性保留,沒用的屬性不要。

物件的要求:

各司其職:物件應該是簡單的

弱耦合性:物件之間的關係應該儘量的弱

可重用性:儘可能避免重複性的工作

可擴充套件性:已有物件可以換成新的物件

面向物件的關鍵,軟體開發的原則

什麼是類?

類是物件的抽象。

屬於同一個類的所有的物件都具備相同的屬性。

類是客觀物件在人腦中的主觀反應,是人對物件的認識。

類是物件的模板。 程式設計師編寫的類是用來建立物件的。

如何編寫一個類?

class First{
    public static void main(String[]args){
        System.out.println("Hello Java");
    }
}

定義屬性就是定義變數:

在方法(函式)中定義的變數叫做區域性變數。

在方法(函式)外定義的變數叫做例項變數,也就是屬性。

例項變數的特點

: 有預設值,也可以賦初始值 作用範圍至少在類的內部

可以和區域性變數的命名發生衝突 如果沒有命名衝突,所有方法可以直接訪問

如果發生命名衝突,方法中優先訪問區域性變數

定義方法就是定義函式:

方法的宣告: 表示這個類的物件能做什麼

暫時不需要修飾符 需要修飾符時順序隨意

修飾符組合 返回值型別

方法名 (引數表) 丟擲的異常

過載

在呼叫一個物件的方法時,編譯器會根據實參的個數、型別和順序,決定呼叫物件的哪個方法。

編譯時決定呼叫的方法

編譯結束,呼叫的方法就被確定

也叫編譯時多型

每天都在用的過載:

System.out.println( 10 );
System.out.println( 10.0 );
System.out.println( 'A' );
System.out.println( true );
System.out.println( 
"10" ); System.out.println( );

過載:型別不同,個數不同,順序不同;

構造方法.

什麼是構造方法?

構造方法是類中一種特殊的方法,也叫構造器:

沒有返回值型別 方法名必須和類名完全相同,可以過載

不允許手動呼叫

class Student {
    Student ( ) { }
    Student ( String a, int b ) {
        name = a;
        age = b;
    }
}

一個類可以沒有方法,但是不能沒有構造方法。

如果定義類時沒有寫構造方法,編譯器會自動增加公開的無參構造方法,以保證一個類無論如何至少有一個構造方法。

建議:主動提供構造方法。

構造方法在物件被建立時會被呼叫一次,呼叫之後物件就建立完成了。

物件的建立過程(v1.0):

分配空間 給所有的屬性賦初始值

呼叫構造方法

構造方法經常用來給屬性賦值,比較靈活