1. 程式人生 > >#碼神心得_09# 包裝類、Object類方法、final、抽象類

#碼神心得_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,能夠想到的基本上市場上都有

創意還不足,還需要慢慢尋找靈感