1.我們定義一個Circle類并使用該類創建對象,我們創建三個圓對象,1.0,25和125,然后顯示這三個圓的半徑和面積,將第二個對象的半徑改為100,然后顯示它的新半徑和面積。程序清單如下:
package testcircle1;
/**
*
* @author mjd
*/
public class TestCircle1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Circle1 circle1 = new Circle1();
System.out.println("The area of the circle "+circle1.radius+"is"+circle1.getArea());
Circle1 circle2 = new Circle1(25);
System.out.println("The area of the circle "+circle2.radius+"is"+circle2.getArea());
Circle1 circle3 = new Circle1(125);
System.out.println("The area of the circle "+circle3.radius+"is"+circle3.getArea());
}
}
class Circle1{
double radius;
Circle1(){
radius =1.0;
}
Circle1(double newRadius){
radius = newRadius;
}
double getArea(){
return radius*radius*Math.PI;
}
}
該程序包括兩個類,其中第一個類TestCircle1是主類,它的唯一目的就是測試第二個類Circle1.在運行這個程序時,Java運行系統會調用這個主類的main方法,可以把兩個類放在同一個文件中,但是文件中只能有一個類是公共的,此外,公共類必須與文件同名,因此文件名就應該是TestCircle1.java,因為TestCircle1是公共的。
主類包含main方法,該方法創建三個對象,和創建數組一樣,使用new操作符從構造方法創建一個對象,這三個對象有不同的數據,但是有相同的方法,因此可以用getArea()方法計算它們各自的面積。可以分別使用circle1.radius,ciecle2.radius,ciecle3.radius來通過對象引用訪問數據域。
2.使用構造方法構造對象
(1)構造方法必須具備和所在類相同的名字
(2)構造方法沒有返回類型,甚至連void也沒有
(3)構造方法是在創建一個對象使用new操作符時調用的,構造方法的作用是初始化對象。
例如: public void Circle(){}在這種情況下,Circle是一個方法。
例如: new Circle()使用Circle類中的定義的第一個構造方法創建一個Circle對象。new Circle(25)調用Circle類中定義的第二個構造方法創建一個Circle對象。通常,一個類會提供一個沒有參數的構造方法,Circle(),這樣的構造方法稱為無參構造方法。
3.引用變量和引用類型
對象是通過對象引用變量來訪問的,該變量包含對對象的引用,使用如下語法格式聲明這樣的變量:
ClassName objectRefVar;
一個類基本上等同于一個程序員定義的類型,一個類就是一種引用類型,這意味著任何類型為類的變量都可以引用該類的一個實例。下面的語句聲明myCircle的類型是Circle類型:
Circle myCircle;
變量myCircle能夠引用一個Circle對象,下面的語句創建一個對象,并且將它的引用賦給變量myCircle:
myCircle = new myCircle;
利用如下的語法,可以寫一條包括聲明對象引用變量,創建對象以及將對象的引用賦值給變量的語句:
ClassName objectRefVar = new ClassName();例如:
Circle myCircle = new Circle(); Circle是類名,myCircle是對象引用變量。
4.訪問對象的數據和方法
在創建一個對象之后,它的數據和方法可以使用圓點運算符(.)來訪問和調用,該運算符也稱為對象成員訪問運算符
objectRefVar.datafield引用對象的數據域。
objectRefVar.method調用對象的方法。
例如:myCircle.radius引用myCircle的半徑,而myCircle.getArea()調用myCircle的getArea方法。
5.使用Java庫中的類
Date類
我們之前已經學習了如何使用System.currentTimeMillis()來獲得當前時間,使用除法和求余運算分解出當前的秒數,分鐘數和小時數
我們可以使用Date類中的無參構造方法為當前的日期和時間創建一個實例,它的getTime()方法返回自己從GMT時間1970年1月1日算起至今逝去的時間,它的toString方法返回日期和時間的字符串。
java.tuil.Date date = new java.util.Date();
System.out.println("The elapsed time since Jan 1,1970 is"+date.getTime()+"milliseconds");
System.out.println(date.toString());
6.給方法傳遞對象函數
我們舉個例子,將myCircle對象作為參數傳遞給printCircle方法
public class Test{
public static void main(String args[]){
Circle3 myCircle = new Circle3(5.0);
printCircle(myCircle);
}
public static void printCircle(Circle3 c){
System.out.println("The area of the circle of radius"+c.getRadius+"is"+c.getArea());
}
}
下一篇文章我們會主要做一些編程練習題,希望我們能夠一起鞏固知識,共同學習,一起進步,謝謝。