学习Java笔记(一)
生活随笔
收集整理的這篇文章主要介紹了
学习Java笔记(一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.父類方法使用private聲明可以進行覆寫嗎?
答:不可以。
這里無論B類中的方法使用public,default或者private,輸出結果都一樣。利用快捷鍵在B類中選擇重寫方法,沒有選擇重寫A類中的print方法的,所以不可以覆寫父類中的private聲明的方法。子類中的這個方法相當于定義了一個新的方法,這一方法與父類無關。
2.父子類對象的轉換
-向上轉型:子類對象變為父類對象(自動轉換)
格式:父類 父類對象 = 子類實例
目的:參數統一,但是通過子類實例化后的父類對象所能調用的方法只能是父類中定義過的方法。
結果為由父類對象調用方法,根據子類是否覆寫了父類中的方法來執行,如果子類覆寫了,那么調用的是子類覆寫過的方法。,否則調用父類中定義的方法。但是對象一旦向上轉型,那么就無法調用子類原本的特有的方法和屬性。
-向下轉型:父類對象變為子類對象(強制轉換)
格式:子類 子類對象 = (子類)父類實例
目的:父類對象要調用實例化它的子類中的特殊方法, 前提條件是必須發生向上轉型后才可以發生向下轉型,容易帶來安全隱患。
基本的向上轉型和向下轉型:
class A{public void print(){System.out.println("1");} } class B extends A{public void print(){System.out.println("2");}} class C extends A{public void print(){System.out.println("3");} } public class TestDemo {public static void main(String[] args) {//只要是A類的子類都可以使用向上轉型,由A類接收A a1 = new B(); //向上轉型A a2 = new C(); //向上轉型B b1 = (B) a1; //向下轉型a1.print();a2.print();b1.print();} }向下轉型調用子類中的特殊功能:
class A{public void print(){System.out.println("1");} } class B extends A{public void print(){System.out.println("2");}public void funB(){System.out.println("B擴充的方法");} } public class TestDemo{public static void main(String[] args) {fun(new B());}private static void fun(A a) { //統一參數if(a instance of B){B b = (B) a; //因為要調用子類的特殊功能,需要向下轉型b.funB(); //調用子類擴充的方法} } }3.public class和class的區別
public class:文件名稱必須與類名稱保持一致在一個.java文件中只能有一個public class聲明,可以被不同的包訪問。 class:文件名稱與類名稱可以不一致,一個.java文件中可以有多個class定義,編譯后會形成多個.class文件,只能被此類所在的包訪問。4.java命名規范
類名稱:每個單詞的開頭首字母大寫。 變量/方法:第一個單詞的首字母小寫,之后每個單詞的首字母大寫。 常量名稱:每個字母大寫。 包名稱:所有字母小寫。5.單例設計模式與多例設計模式
單例設計模式(只有一個實例化對象):
多例設計模式(多個對象):
class Sex{private String title;private static final Sex MALE = new Sex("男");private static final Sex FEMALE = new Sex("女");private Sex(String title) {this.title = title;}@Overridepublic String toString() {return this.title;}public static Sex getInstance(String ch){switch(ch){case "man":return MALE;case "female":return FEMALE;default:return null;}} } public class 多例設計模式 {public static void main(String[] args) {Sex sex = Sex.getInstance("man");System.out.println(sex);} }總結
以上是生活随笔為你收集整理的学习Java笔记(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何使用JFreeChart实现折线图
- 下一篇: java美元兑换,(Java实现) 美元