#碼神心得_09# 包裝類、Object類方法、final、抽象類
因為考試周,足足20天沒有進行android培訓,期間因為課程設計也熬了好多夜,這學期總算是結束了,可以全身心投入android的學習當中了。
因為太長時間沒有上培訓,使得以前的知識都有點遺忘了。不過好在以前上的每一次課都有總結,可以通過檢視自己部落格慢慢重溫之前學過的知識,每次課寫總結的優點終於體現出來了!
包裝類、Object類方法、final、抽象類
一、包裝類
1、包裝類的設計目的:為了擬補基礎資料型別進行計算和轉換的繁瑣操作
2、裝箱與拆箱:
裝箱:基本資料型別轉化為包裝類 如:Integer inObj = 100
拆箱:包裝類轉化為基本資料型別 如:int it = inObj
3、字串轉化為int型別的三種方法:
①int a = Integer.parseInt(aString);
②int a = Integer.valueOf(aString);
③int a = new Integer(aString);
4、int型別轉化為字串的兩種方法:
①String a = String.valueOf(intObj); 推薦使用
②String a = intObj+""; 不推薦使用
二、Object類中 toString()、equals()方法
1、toString():如果你定義的類沒有覆蓋toString方法,則物件在呼叫toString方法時用的是Object類toString方法,返回的是“類名@hashcode".
2、equals():被用來檢測兩個物件是否相等,即兩個物件的內容是否相等,區分大小寫。
在這裡必然要說到equals與“==”的區別:
①對於兩個基本資料型別的比較,只能使用“==”
②對於引用資料型別的比較,equals比較的是兩個變數的“內容”,而==比較的是兩個變數的記憶體地址是否一致,或者說比較兩個變數是否為同一物件。
3、toString()、equals()方法重寫:如果你定義的類沒有覆蓋Object方法,這當該類的物件在呼叫該方法時執行的是Object類的方法。可以通過重寫該方法使之執行你所需要的操作。
三、final修飾符
1、final修飾類:該類不能被繼承。
2、fianl修飾方法:該方法不能被重寫。(但可以被過載)
3、fianl修飾變數:變數必須初始化賦值。
4、fianl修飾引用變數時,指的是該變數對應的物件所指向的地址不能被改變,而改變變數的值並不會導致該物件地址發生改變,因此當final修飾引用變數時,引用變數在不改變記憶體地址的情況下是可以改變它的值的。
四、抽象類與抽象方法(abstract)
1、抽象類:擁有抽象方法的類為抽象類
2、抽象方法:沒有方法體的方法為抽象方法
3、抽象類不能例項化物件
4、繼承抽象類的子類必須實現父類的所有抽象方法,否則也必須宣告為抽象類,再由其子類實現。
課堂作業
作業一:基於Shape抽象類,實現一個Circle類,用於計算其周長
下面是程式碼:
public abstract class Shape {
//獲得周長
public abstract double getZhouChang();
//獲得面積
public abstract double getMianJi();
public static void main(String[] args) {
Circle circle = new Circle(10);
System.out.println(circle.getZhouChang());
System.out.println(circle.getMianJi());
}
}
class Circle extends Shape{
private double r ;
Circle(int r){
this.r = r;
}
@Override
public double getZhouChang() {
double result = r*3.14*2;
return result;
}
@Override
public double getMianJi(){
double result = 3.14*r*r;
return result;
}
}
作業二:在部落格裡面發表自己想做的app的構想,描述清楚需求以及應用場。
暫時木有什麼想要做的app,缺少idea,能夠想到的基本上市場上都有
創意還不足,還需要慢慢尋找靈感