017:java創建一個學生類


Java類的實例:創建類,成員方法的聲明和調用

(轉自:http://c.biancheng.net/view/940.html

1        創建一個學生類,需求描述

創建一個表示學生的實體類 Student,其中有學生姓名、性別和年齡信息。要求使用屬性來表示學生信息,最終編寫測試代碼。

  1. 定義:定義一個名為 Student 的類。代碼如下:
  2. 屬性:在類中通過屬性定義學生、性別和年齡,代碼如下:
    1. public class Student {
    2.     public String Name;    // 學生姓名
    3.     public int Age;    // 學生年齡
    4.     private boolean Sex;    // 學生性別
    5. }
  1. public class Student {
  2. // 學生類
  3. }

在上述代碼中將學生性別屬性 Sex 設置為 private 作用域。為了對該屬性進行獲取和設置,還需要編寫 isSex 和 setSex 方法。代碼如下:

  1. public boolean isSex() {
  2.     return Sex;
  3. }
  4. public void setSex(boolean sex) {
  5.     this.Sex = sex;
  6. }

在 Student 類中添加 main() 方法,然后創建兩個學生類的實例,並輸出學生信息。最終代碼如下:

  1. public static void main(String[] args) {
  2.     Student zhang = new Student(); // 創建第一個實例
  3.     zhang.Name = "張子同";
  4.     String isMan = zhang.isSex() ? "女" : "男";
  5.     System.out.println("姓名:" + zhang.Name + "性別:" + isMan + "年齡:" + zhang.Age);
  6.     Student li = new Student(); // 創建第二個實例
  7.     li.Name = "李子文";
  8.     li.Sex = true;
  9.     li.Age = 15;
  10. 10.     String isWoman = li.isSex() ? "女" : "男";
  11. 11.     System.out.println("姓名:" + li.Name + "性別:" + isWoman + "年齡:" + li.Age);

12. }

new: 使用 new關鍵字 加上 構造方法,來創建一個對象. Student zhang 的意思是,在內存中分配一個變量,名字叫zhang,這個變量是Student類型的;后半部分,new Student(); 這就是new關鍵字和構造方法來創建一個對象, Student()是構造方法的名字。

意思就是說,把這個對象在內存中的地址 賦值 給變量zhang,這就是Java中引用概念,zhang就叫做引用,或者叫引用變量,或者直接叫變量,沒問題,都是它; zhang的值就是一個內存地址,或者叫引用地址。

13. Student zhang = new Student(); // 創建一個實例

輸出結果如下:

姓名:張子同性別:男年齡:0

姓名:李子文性別:女年齡:15

 

由輸出結果可以看到,在第一個實例 zhang 中由於僅設置了 Name 屬性的值,所以 boolean 類型的 Sex 默認使用值 false,int 類型的 Age 默認使用值 0。第二個實例 li 同時設置了這三個屬性的值。

2        成員方法的聲明和調用

聲明成員方法可以定義類的行為,行為表示一個對象能夠做的事情或者能夠從一個對象取得的信息。類的各種功能操作都是用方法來實現的,屬性只不過提供了相應的數據。一個完整的方法通常包括方法名稱、方法主體、方法參數和方法返回值類型。

成員方法一旦被定義,便可以在程序中多次調用,提高了編程效率。聲明成員方法的語法格式如下:

  1. public class Test {
  2. [public|private|protected][static]<void|return_type><method_name>([paramList]) {
  3. // 方法體
  4. }
  5. }

即:

public class 類名 {

    public 返回值類型 方法名 (傳遞的參數類型 參數名稱) {

    // 方法體

    }

}

 

上述代碼中一個方法包含 4 部分:方法的返回值、方法名稱、方法的參數和方法體。其中 retum_type 是方法返回值的數據類型,數據類型可以是原始的數據類型,即常用的 8 種數據類型,也可以是一個引用數據類型,如一個類、接口和數組等。

除了這些,一個方法還可以沒有返回值,即返回類型為 void,像 main() 方法。method_name 表示自定義的方法名稱,方法的名稱首先要遵循標識符的命名約定,除此之外,方法的名稱第一個單詞的第一個字母是小寫,第二單詞的第一個字母是大寫,依此類推。

paramList 表示參數列表,這些變量都要有自己的數據類型,可以是原始數據類型,也可以是復雜數據類型,一個方法主要依靠參數來傳遞消息。方法主體是方法中執行功能操作的語句。

注意:上面所提到的重寫、重載和抽象類,由於篇幅有限,我們會在教程《Java方法重載》《Java方法重寫》和《Java抽象類》中講解,這里大致了解就可以。

例 1 為上一節創建的學生類 Student 添加一個可以返回學生信息字符串的方法。代碼如下:

  1. public class Student {
  2.     public StringBuffer printInfo(Student st) {
  3.         StringBuffer sb = new StringBuffer();
  4.         sb.append("學生姓名:"+st.Name+"\n 學生年齡:"+st.Age+"\n 學生性別:"+st.isSex());
  5.         return sb;
  6.     }
  7. }

上述代碼創建了一個名稱為 printInfo 的方法,其返回值類型為 StringBuffer(引用數據類型)。該方法需要傳遞一個 Student 類型的參數,最后需要將一個 StringBuffer 類型的數據返回。

1)成員方法的返回值

若方法有返回值,則在方法體中用 return 語句指明要返回的值

return 表達式

或者

return (表達式)

表達式可以是常量、變量、對象等。表達式的數據類型必須與聲明成員方法時給出的返回值類型一致。

2)形參、實參及成員方法的調用

一般來說,可以通過以下方式來調用成員方法:

methodName({paramList})

關於方法的參數,經常會提到形參與實參,形參是定義方法時參數列表中出現的參數,實參是調用方法時為方法傳遞的參數。

例 2

下面 returnMin() 方法中的 m 和 n 是形參,調用 returnMin() 方法時的 x 和 y 是實參。

  1. public int returnMin(int m,int n) {
  2. return Math.min(m,n); // m和n是形參
  3. }
  4. public static void main(String[] args) {
  5. int x = 50;
  6. int y = 100;
  7. Test t = new Test();
  8. int i = t.returnMin(x,y); // x和y是實參
  9. System.out.println(i);
  10. }

public static void main(String[] args) {

}

viod: 在c語言中有四種數據類型,里面居然有空類型。有一類函數,調用后並不需要向調用者返回函數值, 這種函數可以定義為“空類型”。其類型說明符為void。

java中只有兩種數據類型,即基本數據類型和引用數據類型。Void - java.lang 中的 類Void 類是一個不可實例化的占位符類,它保持一個對代表 Java 關鍵字 void 的 Class 對象的引用。你可以把void理解成一個特殊的數據類型也可以理解成一個方法的修飾符。

Void是一個類,void就是一個占位符(void返回值為空)

//確定類型
public class Test {
    public static void main(String[] args) {
        System.out.println(Void.class); 
        System.out.println(void.class); 
    }
}
//基本使用
public class Test {
     //返回voidreturn可有可無
    public void a1() {
        return;
    }
    //必須且只能返回null
    public Void a2() {
        return null; 
    }
}

 

 

方法的形參和實參具有以下特點:

  • 形參變量只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只有在方法內部有效,方法調用結束返回主調方法后則不能再使用該形參變量。
  • 實參可以是常量、變量、表達式、方法等,無論實參是何種類型的量,在進行方法調用時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值、輸入等辦法使實參獲得確定值。
  • 實參和形參在數量、類型和順序上應嚴格一致,否則會發生“類型不匹配” 的錯誤。
  • 方法調用中發生的數據傳送是單向的,即只能把實參的值傳送紿形參,而不能把形參的值反向地傳送給實參。因此在方法調用過程中,形參的值發生改變,而實參中的值不會變化。

例 3

下面的示例演示了調用 add() 方法前后形參 x 的變化。

  1. public int add(int x) {
  2. x += 30;
  3. System.out.println("形參 x 的值:"+x);
  4. return x;
  5. }
  6. public static void main(String[] args) {
  7. int x = 150;
  8. System.out.println("調用 add() 方法之前 x 的值:"+x);
  9. Test t = new Test();
  10. int i = t.add(x);
  11. System.out.println("實參 x 的值:"+x);
  12. System.out.println("調用 add() 方法的返回值:"+i);
  13. }

運行上述程序,輸出結果如下:

調用 add() 方法之前 x 的值:150

形參 x 的值:180

實參 x 的值:150

調用 add() 方法的返回值:180

從輸出結果可以看出,形參 x 值的改變,並沒有影響實參 x。
在調用成員方法時應注意以下 4 點:

  1. 對無參成員方法來說,是沒有實際參數列表的(即沒有 paramList),但方法名后的括號不能省略。
  2. 對帶參數的成員方法來說,實參的個數、順序以及它們的數據類型必須與形式參數的個數、順序以及它們的數據類型保持一致,各個實參間用逗號分隔。實參名與形參名可以相同,也可以不同。
  3. 實參也可以是表達式,此時一定要注意使表達式的數據類型與形參的數據類型相同,或者使表達式的類型按 Java 類型轉換規則達到形參指明的數據類型。
  4. 實參變量對形參變量的數據傳遞是“值傳遞”,即只能由實參傳遞給形參,而不能由形參傳遞給實參。程序中執行到調用成員方法時,Java 把實參值復制到一個臨時的存儲區(棧)中,形參的任何修改都在棧中進行,當退出該成員方法時,Java 自動清除棧中的內容。

方法體中的局部變量

在方法體內可以定義本方法所使用的變量,這種變量是局部變量。它的生存期與作用域是在本方法內,也就是說,局部變量只能在本方法內有效或可見,離開本方法則這些變量將被自動釋放。
在方法體內定義變量時,變量前不能加修飾符。局部變量在使用前必須明確賦值,否則編譯時會出錯。另外,在一個方法內部,可以在復合語句(把多個語句用括號{}括起來組成的一個語句稱復合語句)中定義變量,這些變量只在復合語句中有效。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 JAVA 類的定義(定義一個類,來模擬“學生”) 構建一個學生Student,根據類Student的定義,創建五個該類的對象,輸出每個學生的信息,計算並輸出這五個學生Java語言成績的平均值,以及計算並輸出他們Java語言成績的最大值和最小值。 用C# 設計一個 Windows應用程序,在該程序中首先構造一個學生基本類,再分別構造小學生、中學生、大學生等派生類,當輸入相關數據,單擊不同的按鈕(小學生、中學生、大學生)將分別創建不同的學生對象,並輸出當前學生總人數,該學生的姓名、學生類型和平均成績。 Java創建一個類的實例的方法 .定義一個學生類Student,包含三個屬性姓名、年齡、性別,創建三個學生對象存入ArrayList集合中。 java作業之學生類 設計一個學生類&班級類 編寫Java應用程序。首先,定義描述學生的類——Student,包括學號(int)、 姓名(String)、年齡(int)等屬性;二個方法:Student(int stuNo,String name,int age) 用於對對象的初始化,outPut()用於輸出學生信息。其次,再定義一個主類—— TestClass,在主類的main方法中創建多個Student類的對象,使用這些對象來測 試Stud 編寫Java應用程序。首先,定義描述學生的類——Student,包括學號(int)、 姓名(String)、年齡(int)等屬性;二個方法:Student(int stuNo,String name,int age) 用於對對象的初始化,outPut()用於輸出學生信息。其次,再定義一個主類—— TestClass,在主類的main方法中創建多個Student類的對象,使用這些對象來測 試Stud 編寫Java應用程序。首先,定義描述學生的類——Student,包括學號(int)、 姓名(String)、年齡(int)等屬性;二個方法:Student(int stuNo,String name,int age) 用於對對象的初始化,outPut()用於輸出學生信息。其次,再定義一個主類—— TestClass,在主類的main方法中創建多個Student類的對象,使用這些對象來測 試Stud
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM