static關鍵字用來宣告靜態方法或是靜態屬性
同乙個類中靜態方法間可以直接呼叫,而靜態方法不能直接呼叫非靜態方法。需要先new乙個物件,通過物件來呼叫。
而非靜態方法可以直接直接呼叫靜態方法。
而對於靜態屬性,可以直接賦值或是通過類名.屬性名賦值,無論是否是靜態方法中或是非靜態方法中。
靜態方法時跟隨類一起載入的
static的方法僅能呼叫其他的static 方法,只能訪問static資料,不能以任何方式引用this 或super。
這裡當個複習點自己寫了一遍關於static修飾的作用。
super注意點
super呼叫父類的構造方法,必須在構造方法的第乙個
super 必須只能出現在子類的方法或構造方法中
super 和 this 不能同時呼叫構造方法
this
代表的物件不同
this:本身呼叫者這個物件
super:代表父類物件的引用
前提this:沒有繼承也可以視同
super:只能在繼承條件才可以使用
構造方法
this():本類的構造
super():父類的構造
在靜態方法中 方法的呼叫只和左邊定義的資料型別有關
即b是a new出來的物件。因此呼叫了a的方法。因為靜態方法是類的方法。而非靜態是物件的方法。有static時,b呼叫了b類的方法,因為b是用b類定義的沒有static時,b呼叫的是物件的方法,而b是用a類new的
重寫:需要有繼承關係,子類重寫父類的方法;
方法名必須相同
引數列表必須相同
修飾符:範圍可以擴大:public--->proctected--->default--->private
丟擲的異常:範圍,可以被縮小,但不能擴大。 classnotfoundexception
重寫:子類的方法和父類必要一致,方法體不同
為什麼需要重寫:
父類的功能,子類不一定需要,或者不一定滿足
alt+insert:override
public class personprotected void print()}
public class student extends person
public void print()
public void text(string name)
public void text1()}
public static void main(string args)
注意:多型是方法的多型,屬性沒有多型性。
instanceof
多型是方法的多型,屬性沒有多型
父類和子類,有聯絡。 classcastexception
存在的條件:繼承關係,方法需要重寫父類引用指向子類物件 father f1 = new son();
static靜態final常量private私有:均不能被重寫
public class person }public class chinese extends person }
public class russian extends person }
public class text
public void eattext(person person)}
output:
中國人愛吃餃子
俄羅斯人愛吃不知道
object object = new student( );static關鍵字用來宣告靜態方法或是靜態屬性system.out.println(object instanceof student); //true
system.out.print1n(object instanceof person); //true
system.out.println(object instanceof object); //true
system.out.println(object instanceof teacher); //false
system.out.println(object instanceof string); //false
system.out.println( "***************===—***************");
person person = new student();
system.out.println(person instanceof student); //true
system.out.println(person instanceof person); //true
system.out.println(person instanceof object); //true
system.out.println(person instanceof teacher); //false
instanceof string);//編譯報錯!
system.out.println("******************************====");
student student = new student();
system.out.println(student instanceof student); //true
system.out.println( student instanceof person); //true
system.out.println(student instanceof object); //true
println(student instanceof teacher);//編譯報錯!
println(student instanceof string);//編譯報錯!
同乙個了類中靜態方法間可以直接呼叫,而靜態方法不能直接呼叫非靜態方法。需要先new乙個物件,通過物件來呼叫。
而非靜態方法可以直接直接呼叫靜態方法。
而對於靜態屬性,可以直接賦值或是通過類名.屬性名賦值,無論是否是靜態方法中或是非靜態方法中。
public class student**塊:public void go()
public static void main(string args)
}
public class person//靜態**塊 1.可以用來賦初值
static
//構造方法 3.
public person()
public static void main(string args) }
output:
這是靜態**塊
這是匿名**塊
這是構造方法
**********====
這是匿名**塊
這是構造方法
public inte***ce timepublic inte***ce user
public class true implements user,time
@override
public void delete() {}
@override
public void update() {}
@override
public void query() {}
@override
public void day() {}
}
3.區域性內部類
4.匿名內部類
public class outer什麼是異常public class in
//獲得外部類的私有屬性
public void getid()}}
簡單分類
public class text catch (arithmeticexception e) finally }public void test(int a, int b) throws arithmeticexception
system.out.println(a / b);}}
/*int a = 1;
int b = 0;
try catch (error e)finally
}public void a()
public void b()
*/
public class myexception extends exception//tostring:異常的列印資訊
@override
public string tostring() ';}}
public class text
system.out.println("ok");
}public static void main(string args) catch (myexception e)
}}
python學習 第四天補充 物件導向
在命名時,通過使用兩個下劃線作為開頭,可以使得這個變數或者函式程式設計私有的,但是這個其實的python的偽私有,實際是python通過名字修改來進行的,python會把這樣命名的變數或者函式名改為 類名 變數名 class a name hello t a print t.name 這樣會出現錯誤...
開課第四天
今天是開課的第四天,老師又講了很多知識 1 位運算 位運算的效能高,但是理解比較困難。1 按位與,兩個都是一才為一,兩個不一樣就為零。2 按位或,只要有乙個是一就是一。3 異或,不同為一,乙個數和另乙個數異或倆次還是它自己,乙個數和自身異或結果是零,乙個數和零異或結果還是它本身。對稱加密,解密。4 ...
華為第四天
在第三天晚上下班的時候,終於搞定了第乙個專案內容,即使再簡單,我也勝利的喜悅,很欣慰,自己完成了乙個小小的任務,雖然比較簡單的乙個需求。在這種興奮的心情下,我結束了我第三天實習,我想生活始終要抱有一定的態度,是付出又收穫的喜悅,讓我們每個人都保持這種喜悅,來開始每一天的工作。第四天開始的時候,我先去...