1. 程式人生 > >物件的建立與使用

物件的建立與使用

物件的建立

1:必須使用new作為關鍵字建立物件。
2:使用物件引用.成員變數或來引用物件的成員變數。
3:使用物件引用.方法(引數列表來呼叫物件的方法)。
4:同一類的每個物件由不同的成員變數儲存空間。
5:同一類的每個物件共享該類的方法。
6:非靜態方法是針對每個物件進行呼叫。(方法前無static時,呼叫該方法時一定要先new一個物件才能呼叫)

例項1:

	public class CreateObject{
		public CreateObject(){	//構造方法
			System.out.println("建立物件");
		}
		public static void main(String args[]){	//主方法
			new CreateObject();	//構建物件
		}
	}
	執行之後,控制檯列印   建立物件(建立物件的同時自動呼叫構造方法中的程式碼。)

例項2:

	public class TransferProperty{
		int i = 47;		//定義成員變數。
		public void call(){		//定義成員方法。
			System.out.println("呼叫call()方法")
			for(i = 0;i<3;i++){
				System.out.print(i + " ");
				if(i == 2){
					System.out.println("\n");
				}
		}
	   }	
	   public TransferProperty(){		//定義構造方法。
	   }
	   public static void main(String[] args){
	   	TransferProperty t1 = new TransferProperty();	//建立一個物件。
	   	TransferProperty t2 = new TransferProperty();	//建立另一個物件。
	   	t2.i = 60;		將類成員變數賦值為60;
	   	//使用第一個物件呼叫類成員變數-
	   	System.out.println("第一個例項物件呼叫變數 i 的結果:" + t1.i++);
	   	t1.call();			使用第一個物件呼叫類成員方法。
	   	//使用第二個物件除錯類成員變數。
	   	System.out,println("第二個例項物件呼叫變數 i 的結果:" + t2.i);
	   	t2.call();			使用第二個物件呼叫類成員方法。
	   }
	}		

	輸出結果:
			第一個例項物件呼叫變數 i 的結果:47
			呼叫call()方法
			0	1	2
			
			第二個例項物件呼叫變數 i 的結果:60
			呼叫call()方法
			0	1	2

例項3

class	Point{	//定義一個點類
	private	double	x;	//兩個成員變數:x,y
	private	double	y;
	Point(double x1, double y1){	//構造方法,把x1,y1賦給x,y
		x = x1;
		y = y1;
	}
	public double getX(){ return	x ;}
	public double getY(){ return	y ;}
	public void setX(double i){ x = i;}
	public void setY(double i){ y = i;}
}		
class 	circle{
	private Point o;	//複用,圓心是一個點,直接使用點物件
	private double radius;	//半徑
	Circle(Point p, double r){
		o = p;
		radius = r;
	}
	Circle(double r){	//過載
		o = new Point(0.0  0.0);
		radius = r;
	}
	boolean contains(Point p){
		double x = p.getX() - o.getX();
		double y = p.getY() - o.getY();
		if(x*x + y*y > radius * radius)	return false;
		esle return ture;
	}	
public	void	 setO( double x, double y){
	o.setX(x);
	o.setY(y);
}
	public Point getO(){ return o ; }	//拿到圓心O的座標。
	public double getRadius() {	return radius ; }
	public void setRadius( double r ) { radius = r ;}
	public doule area() {
		return 3.14* radius*radius;
	}
}