小各 發問時間: 電腦與網際網路程式設計 · 1 0 年前

有關JAVA public的問題@@

import java.util.Scanner;

public class Bill

{

public static double RATE = 150.00; //Dollars per quarter hour

private int hours;

private int minutes;

private double fee;

public void inputTimeWorked( )

{

System.out.println("Enter number of full hours worked");

System.out.println("followed by number of minutes:");

Scanner keyboard = new Scanner(System.in);

hours = keyboard.nextInt( );

minutes = keyboard.nextInt( );

}

public double computeFee(int hoursWorked, int minutesWorked)

{

minutesWorked = hoursWorked*60 + minutesWorked;

int quarterHours = minutesWorked/15; //Any remaining fraction of a

// quarter hour is not charged for.

return quarterHours*RATE;

}

public void updateFee( )

{

fee = computeFee(hours, minutes);

}

public void outputBill( )

{

System.out.println("Time worked: ");

System.out.println(hours + " hours and " + minutes + " minutes");

System.out.println("Rate: $" + RATE + " per quarter hour.");

System.out.println("Amount due: $" + fee);

}

}

*請問為什麼沒有public static void main這一行

public class Bill只有寫這樣是什麼意思@@

public void inputTimeWorked這個void這樣是什麼意思

為什麼它分了那麼多個public void

其中一個還public double 0.0

*還有別的程式碼開頭寫

import java.util.Scanner;

class Number

為什麼只有class..

那下面是不是有別的部份

要怎麼寫@@

*還有private是怎麼用

我有查過他說只有這個class可以用的意思

可是我看不懂= =

拍謝一次想問完-..-

可以幫我註解一下嗎.....

謝謝@@

1 個解答

評分
  • 最佳解答

    Q1. 請問為什麼沒有public static void main這一行? public class Bill只有寫這樣是什麼意思?

    Ans: 這是一個public(公眾)class,名為Bill的class,該類別沒有public static void main(String[] args){}方法(即程式進入點方法),要使用此class Members必須在其他Method先生成Object;類別是物件的藍圖。當class的存取修飾字為public時,檔案名稱須跟該public class名稱一樣,所以通常有public static void main(String[] args){}的class名稱會跟檔名相同,如果把該public class Bill與擁有public static void main(String[] args){}的class(沒有public修飾字)程式碼放在一起,程式會編譯失敗,原因是檔名需跟擁有public的class相同,但Bill class內卻沒有可供程式執行的entry point(程式進入點),所以沒法執行程式。

    Q2.void這樣是什麼意思?

    Ans: void即為不具任何回傳值。

    Q3.為什麼它分了那麼多個public void?

    Ans: 因為那些都是public(公開)且不具任何回傳值的method。如果需要回傳值,以原程式碼舉例:

    public double computeFee(int hoursWorked, int minutesWorked){

    minutesWorked = hoursWorked*60 + minutesWorked;

    int quarterHours = minutesWorked/15;

    return quarterHours*RATE;

    }

    Q4. 其中一個還public double 0.0?

    Ans: 是public static double RATE = 150.00嗎? 這是public(公開)static(靜態,即不需先生成Object)double型態的變數名稱RATE,給予初始值150.00。

    Q5. class Number為什麼只有class..要怎麼寫以下部分?

    Ans: 它沒有存取修飾字,為default(空白),default(即無任何modifier)的存取範圍在同一個class和package中,subclass 和不同package無法做存取。這也只是一個普通class,怎麼寫沒規定吧@@,只要遵守java規則即可。

    Q6.還有private是怎麼用?

    Ans: private的存取範圍僅僅在同一class裡才可作存取。設為private是為了保護資料的存取安全性,外部無法直接修改或者讀取該資料。

    參考資料: me~~
還有問題?馬上發問,尋求解答。