Java之面向對象(一)

public class OOP_4_22_01 {
	static {
		System.out.println("開始進行類的初始化");
	}
	
	public static void main(String[] args) {
		//測試我們的構造器
		Point p = new Point(5.0, 6.0, 7.8);
		print(p.getDistance(new Point(2.0 , 4.0 , 3.5)));
		
	}
	
	public static void print(Object obj) {
		System.out.println(obj);
	}
}

/*
 *構造器:Java經過關鍵new來調用構造器,返回類的實例,構造器其實就是對對象初始化
 *格式以下:
 *		[修飾符] 類名  [形參列表] {
 *			//n條語句
 *		}
 *
 *要點:一、構造器雖然有返回值,可是不能定義返回類型,由於返回類型必定是本類
 *	  二、若是沒有定義構造器,系統會自動爲咱們定義一個無參的構造器;若是咱們自定義了構造器,
 *       咱們必定記得要對類的無參構造器進行處理
 *    三、構造器的方法名和類名必須一致  
 *    
 */   

class Point {
	double x , y ,z;
	public Point () {
		
	}
	public Point (double x , double y , double z) {
		this.x = x;
		this.y = y;
		this.z = z;
	}
	public double getDistance(Point p) {
		return Math.sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)+(z-p.z)*(z-p.z));
	}
	
/*
 * 垃圾回收機制 Garbage Collection
 * JAVA的內存管理實際就是對象的管理,包括對象空間的分配和釋放
 * 對象空間的分配:使用new關鍵字創造對象便可
 * 對象空間的回收:將對象賦值null,垃圾回收器會負責將全部「不可達」的對象的內存空間回收
 * 要點:一、程序員不能調用垃圾回收器
 * 	   二、程序員能夠經過調用System.gc()通知進行垃圾回收,可是程序不會立刻回收
 * 	   三、finaliza是JAVA提供給程序員用來釋放對象或資源的,可是儘可能少用
 */
	
/*
 * 方法重載
 * 要點:一、參數類型不一樣、或者參數個數不一樣、或者參數順序不一樣  會構成方法重載
 * 	   二、構造方法也能夠重載
 * 	   三、方法調用時,匹配離得最近的方法
 */

/*
 * this關鍵字
 * 要點:一、普通方法中指向調用該方法的對象
 *     二、構造方法中指向正要初始化的對象
 *     三、this不能用於static,想一想爲何?
 */

/*
 * static關鍵字
 * 對於類而言:一、static聲明的成員變量爲靜態成員變量,它被該類全部的實例共享,在類被載入的時候被顯示初始化
 * 			二、能夠經過  「類名.類屬性名」 來調用
 * 對於方法而言:一、不須要new對象,能夠直接調用
 *			 二、調用該方法的時候,不會將對象的引用傳遞給它,因此在static方法裏面不能訪問非static成員 
 */
	
}
相關文章
相關標籤/搜索