java類的結構是由類說明和什麼組成的

類的聲明+類的屬性和方法

㈡ java語言中類的基本結構是什麼

java類的簡單介紹

㈢ java類的構造方法是什麼

構造方法和實例方法的區別

一、主要的區別在於三個方面:修飾符、返回值、命名

1、和實例方法一樣,構造器可以有任何訪問的修飾符,public、private、protected或者沒有修飾符 ,都可以對構造方法進行修飾。不同於實例方法的是構造方法不能有任何非訪問性質的修飾符修飾,例如static、final、synchronized、abstract等都不能修飾構造方法。

解釋:構造方法用於初始化一個實例對象,所以static修飾是沒有任何意義的;多個線程不會同時創建內存地址相同的同一個對象,所以synchronized修飾沒有意義;

構造方法不能被子類繼承,所以final和abstract修飾沒有意義。

2、返回類型是非常重要的,實例方法可以返回任何類型的值或者是無返回值(void),而構造方法是沒有返回類型的,void也不行。

3、至於命名就是構造方法與類名相同,當然了實例方法也可以與類名相同,但是習慣上我們為實例方法命名的時候通常是小寫的,另一方面也是與構造方法區分開。

而構造方法與類名相同,所以首字母一般大寫。

下面看幾個例子熟悉一下:

publicclassSample{

privateintx;

publicSample(){//不帶參數的構造方法
this(1);
}

publicSample(intx){//帶參數的構造方法
this.x=x;
}

publicintSample(intx){//不是構造方法
returnx++;
}

}

上面的例子即使不通過注釋我們也很容易能區分開的,再看下面一個例子

publicclassMystery{
privateStrings;

publicvoidMystery(){//不是構造方法
s="constructor";
}

voidgo(){
System.out.println(s);
}

publicstaticvoidmain(String[]args){
Mysterym=newMystery();
m.go();
}
}

程序執行的結果為null,雖然說Mystery m = new Mystery();調用了Mystery 類的構造方法,但是public void Mystery()並不是構造方法,他只是一個普通的實例方法而已,那該類的構造方法哪去了呢?


二、說到這就得說一下java的默認構造方法

我們知道,java語言中規定每個類至少要有一個構造方法,為了保證這一點,當用戶沒有給java類定義明確的構造方法的時候,java為我們提供了一個默認的構造方法,這個構造方法沒有參數,修飾符是public並且方法體為空。如果用戶有定義構造方法,就不會有默認構造方法!!!

其實默認的構造方法還分為兩種,一種就是剛剛說過的隱藏的構造方法,另一種就是顯示定義的默認構造方法.

如果一個類中定義了一個或者多個構造方法,並且每一個構造方法都是帶有參數形式的,那麼這個類就沒有默認的構造方法,看下面的例子。

publicclassSample1{}

publicclassSample2{
publicSample2(inta){System.out.println("MyConstructor");}
}

publicclassSample3{
publicSample3(){System.out.println("MyDefaultConstructor");}
}

上面的三個類中Sample1有一個隱式的默認構造方法,下列語句Sample1 s1=new Sample()合法;

Sample2沒有默認的構造方法,下列語句Sample2 s2=new Sample2()不合法,執行會編譯錯誤

Sample3有一個顯示的默認構造方法,所以以下語句Sample3 s3=new Sample3();合法。

㈣ JAVA類的構造方法問題

如果是個工具類,裡面都是靜態方法,可以無構造方法。

如果該類表示個對象,就必須有構造方法!!
如果沒有構造方法,如何實例化一個類??不實例化又如何跟其他類交互呢??
不和其他類交互,這個類也沒有存在的價值了。

你說的可有可無是不寫構造方法,也可以new是吧??其實每個類你不寫構造方法,會有個默認的無參構造方法,只是你看不見而已。

父類和子類的構造方法也有很多說道。

一句兩句也說不清楚,上網多搜下這方面的資料,看一下吧。

㈤ Java類的構造方法,怎麼

你這里構造方法調用其他構造方法,不能這么用。可以用this關鍵字去代替。
public Student(String name, int id){
this(name); //調用本類一個參數的構造方法。 用this調用其他的語句,必須要放在構造函數中的第一個語句。
this.id = id;
}
public Student(String name){
this.name = name;
}

㈥ JAVA中 類的構造 a b = new c (d)

c是要動態創建的類型名,d是調用構建方法的參數,不同的類型相同的父級之間可以隱性強制轉換

㈦ 請問,什麼是java的類庫結構

ava類庫中有很多包:

  • 以 java.* 開頭的是Java的核心包,所有程序都會使用這些包中的類;

  • 以 javax.* 開頭的是擴展包,x 是extension 的意思,也就是擴展。雖然 javax.* 是對 java.* 的優化和擴展,但是由於 javax.* 使用的越來越多,很多程序都依賴於 javax.*,所以 javax.* 也是核心的一部分了,也隨JDK一起發布。

  • 以 org.* 開頭的是各個機構或組織發布的包,因為這些組織很有影響力,它們的代碼質量很高,所以也將它們開發的部分常用的類隨JDK一起發布。


  • 在包的命名方面,為了防止重名,有一個慣例:大家都以自己域名的倒寫形式作為開頭來為自己開發的包命名,例如網路發布的包會以 com..* 開頭,w3c組織發布的包會以 org.w3c.* 開頭,微學苑發布的包會以 net.weixueyuan.* 開頭……



㈧ 介紹下Java程序的結構

Java語言是面向對象的程序設計語言,Java程序的基本組成單元是類,類體中又可包括屬性與方法兩部分。而每一個應用程序都必須包含一個main()方法,含有main()方法的類稱之為主類。


一: Java程序的主類及其格式

作為一個可以獨立運行的Java程序,在它的眾多類中必須要有一個類作為程序的起始類,為了方便,本書把這個類稱為主類。當需要執行一個程序時,人們在java命令後面輸入的便是這個主類的文件名(也是主類名),因此主類文件是Java運行環境建立起來之後第一個被裝入虛擬機的用戶文件。為了使虛擬機可以找到程序運行的起始入口,主類必須為public類,並含有一個在格式上符合約定的入口方法main(),其格式如下:

public static void main(String[] args){

}

其中各參數含義如下。

main:入口方法名稱。

args:命令行參數,這是一個String對象數組。

static:修飾字,說明main()是一個靜態方法(類方法)。

public:修飾字,說明main()具有公有訪問屬性。

於是,主類框架的源代碼如下:

public class 主類名{

public static void main(String[] args){

}

}

Java程序的主類常常使熟悉C/C++的讀者感到迷惑:main()方法不就相當於C/C++程序中的主函數嗎,為什麼非得把它放到一個類里,難道它有什麼不同嗎?

沒錯,Java類中main()方法就相當於C/C++程序中的主函數,是一個入口函數。之所以把它封裝到一個類里,而不像C/C++那樣單獨作為一個函數來處理,就本書作者的理解,大概Java的設計者們有如下幾個方面的考慮。

1)Java既然把所有事物都看成了對象,那麼就沒有理由不把程序也看成對象,因為程序也是一種事物。既然是對象,那麼它就應該屬於某個類並以程序名來命名。既然程序是一種類,那麼main()就應該是這個類的一個方法,只不過它有些特殊,它是一個入口方法,並且對它有些特殊規定,例如其名稱必須為main(),必須是公有靜態方法,有命令行參數等。

2)如果把程序封裝成了類,那麼包括本程序在內的任何程序就都可以根據需要,隨時創建這個類的對象,並通過該對象使用這個類中的資源,這樣就便於資源共享,從而提高程序的靈活性。

3)Java程序是一種以類為基本單位的模塊化程序,程序被編譯後,每一個類會對應生成一個二進制位元組碼類文件。如果把程序也封裝成類,那麼它的文件就與其他類文件統一起來,而不會產生其他類型的文件,因而便於管理。

4)之所以把入口方法封裝到類中,其根本目的就是要盡可能平等地看待所有的類。因為Java的最終目的是要以類為基本模塊來實現可裝配軟體,如果把main()方法封裝到了一個類中,那麼就意味著main()與類的其他方法沒什麼本質區別,只不過是分工不同而已。下面很快就會看到,Java的所有類都可以含有一個入口方法而成為主類。也就是說,在Java程序中根本就沒有主類、次類之分,這里之所以把帶有main()方法的類稱為主類,是為了表達方便。


二: JAVA源程序在命令行下的運行

classBank{
publicvoidinit(){
System.out.println("Yes,Ican");
}
publicstaticvoidmain(Stringargs[]){
BankAccountba1=newBankAccount(100.00);
System.out.print("Beforetransactions,");
ba1.display();
ba1.deposit(74.35);
ba1.withdraw(20.00);
System.out.print("Aftertransactions,");
ba1.display();
Bankb=newBank();
b.init();
}
}
classBankAccount{
privatedoublebalance;
publicBankAccount(doubleopeningBalance){
balance=openingBalance;
}
publicvoiddeposit(doubleamount){
balance+=amount;
}
publicvoidwithdraw(doubleamount){
balance-=amount;
}
publicvoiddisplay(){
System.out.println("balance="+balance);
}
}

三:完整的java源程序應該包括下列部分

package語句;

import語句;

public classDefinition; // 公共的類定義部分,至多隻有一個公共類的定義

// java語言規定該java源程序的文件名必須與該公共類名完全一致

classDefinition; // 類定義部分,可以有0個或多個

interfaceDefinition; // 介面定義部分,可以有0個或多個

package:java編譯器為每個類生成一個位元組碼文件,且文件名與類名相同,這就會帶來一個問題:同名的類會發生沖突。package便可管理類命名空間。

一般地,具有相同功能的類放在一個package中。

一個java源程序至多隻能有一個公共類的定義。

若java源程序有一個公共類的定義,則該源文件名字必須與該公共類的名字完全相同。

若源程序中不包含公共類的定義,則該文件名可以任意取名。

若一個源程序中有多個類定義,則在編譯時將為每個類生成一個。class文件。

三。java編程規范

包名:全小寫的名詞,中間可由點分割,eg:java.awt.event

類名:首字母大寫,多個單詞合成,每個單詞首字母也要大寫,eg: class HelloWorldApp

介面名: 同類名,eg: interface Collection

方法名: 由多個單詞合成,第一個單詞通常為動詞,首字母小寫,中間的每個單詞的首字母都要大寫,eg: balanceAccount, isButtonPressed

變數名: 全小寫,一般為名詞,eg: length

常量名: 基本數據類型的常量名為全大寫,如果由多個單詞構成,可以用下劃線隔開,eg: int YEAR, int WEEK_OF_MONTH

對象類型的常量,則是小寫混合,由大寫字母把單詞隔開

㈨ 簡述java類的構造方法

anything
at
=
new
anything();
直接調用無參復構製造函數就可以了
因為
無參構造中
已經調用了
有參數的那個構造..
運行結果
----------------------
有參構造方法
無參構造方法
----------------------

㈩ JAVA 中的類如何用分層結構表示

每一個類執行一個功能或者業務並且不相互依賴,體現了封裝和松耦合。所以我們把業務或者功能邏輯抽象成一個個的類,並且把執行相關業務(比方說資料庫操作)的類文件放到一個包中。假如其他的業務要用到資料庫的相關操作,只需要將這個包import一下就可以直接使用該包裡面的類文件。這樣就實現了簡單的分層結構。。。