-----------------------面向對象基礎------------------------------------
方法(函數)html
{java
(c#p10爲主,p27;javap96)+資料,講以下問題:
一、類概念[類、對象]程序員
二、面向對象基本特徵(封裝、繼承、多態)編程
}c#
三、類的主要構成(屬性和方法)ide
四、程序中如何實現類:函數
類格式(類頭、成員變量、成員方法,實例化)this
例:Person類(姓名,年齡,show_Me)(+set_Me)(+不一樣文件)
(Person類內存分配)
例5-1 學生類(僅java)
(c#提一下public)
戰鬥程序spa
//java(源代碼)設計
//c#(源代碼)
變量做用域(c#略,見p76)
P103直接講例5-2(僅java)
重載
例:兩、三個數最大值
p128,例5-14(僅java,多個數的和)
構造方法
介紹構造方法的意義,構造Person
P108例5-6,知識點:構造重載(長方體,設各邊長,算體積)
擲色子程序(僅C#)
靜態
{ //僅java
靜態方法:P112例5-7
靜態屬性:提一下
看p111-112頁,1,2
注:java裏靜態內容實際上能夠被對象訪問,但這不是通用寫法,其餘語言並不容許。應儘可能使用類來訪問靜態內容。
}
{
//C#
靜態屬性+靜態方法
隨手舉例
}
---------------面向對象進階----------------------------
繼承例:球繼承圓的半徑、面積。代碼
修飾符(JAVA看看視頻,17分28秒,C#P12頁第三點)
this和super
P119例5-9(this),例5-10(主要講super),例5-11(this和super綜合)
子類對象是能夠賦值給父類變量的(例:球對象賦值給圓變量)
{//僅java
子類與父類具備同名方法時:默認爲方法重寫
例:Person1繼承Person類,內存初始化
簡單子類重寫父類方法:P129,例5-15
final修飾方法可阻止重寫
子類重寫父類方法:P126例5-13
}
{//僅C#
具備同名方法時內存中的狀態:默認爲屏蔽
例:Person1繼承Person類,內存初始化
以圓球爲例說明方法的屏蔽與重寫
一、父類受權【能夠(virtual),不能夠(無,即屏蔽)】
二、子類是否重寫【重寫(override),不重寫(new)】
}
---------------團隊編程內容--------------------------
抽象類與抽象方法(必須一塊兒用,規定了必須重寫方法)
通常用於開發小組內部討論概念的時候,一般做爲後續開發的標準和依據。
P124例5-12
例5-12擴展講解:
建抽象類的時候,注意以下圖設置(免得手輸)
抽象類「形狀」代碼:
public abstract class Shape { abstract void getArea(); }
實現類「圓」代碼:
public class Circle extends Shape { double r; Circle(double x) { r=x; } void getArea() { System.out.println("圓形面積是:"+3.14*r*r); } }
實現類「矩形」代碼:
public class Rectangle extends Shape { double c,k; Rectangle(double x,double y) { c=x; k=y; } void getArea() { System.out.println("矩形面積是:"+c*k); } }
main代碼:
public static void main(String[] args) { // TODO Auto-generated method stub Circle cc=new Circle(5.6); Rectangle rt=new Rectangle(8, 6); Shape s; cc.getArea(); rt.getArea(); s=cc; s.getArea(); s=rt; s.getArea(); }
對比這個例子和書上的例5-12,看看有什麼不一樣。
差別最大的是main函數。聲明的抽象類變量能夠指向任何一個它派生的具體類。道理和繼承相同。因而可知抽象類的做用(可用於檢驗的類設計模版)
接口(通常用於項目整體設計時,跨開發小組統一開發標準):
例:龜車賽跑