① java里什麼是方法,方法有什麼特點
1、構造方法名與類名相同
2、構造方法沒有返回值
3、主要作用是完成對新對象的初始化
4、在創建新對象時,系統自動的調用該類的構造方法
5、一個類可以有多個構造方法
6、每個類都有一個默認的構造方法,但是一旦用戶顯示的定義了構造方法,則系統默認的構造方法就不會生成了。
Java 介面
介面(英文:Interface),在JAVA編程語言中是一個抽象類型,是抽象方法的集合,介面通常以interface來聲明。一個類通過繼承介面的方式,從而來繼承介面的抽象方法。
介面並不是類,編寫介面的方式和類很相似,但是它們屬於不同的概念。類描述對象的屬性和方法。介面則包含類要實現的方法。
除非實現介面的類是抽象類,否則該類要定義介面中的所有方法。
介面無法被實例化,但是可以被實現。一個實現介面的類,必須實現介面內所描述的所有方法,否則就必須聲明為抽象類。另外,在 Java 中,介面類型可用來聲明一個變數,他們可以成為一個空指針,或是被綁定在一個以此介面實現的對象。
介面與類相似點:
一個介面可以有多個方法。
介面文件保存在 .java 結尾的文件中,文件名使用介面名。
介面的位元組碼文件保存在 .class 結尾的文件中。
介面相應的位元組碼文件必須在與包名稱相匹配的目錄結構中。
介面與類的區別:
介面不能用於實例化對象。
介面沒有構造方法。
介面中所有的方法必須是抽象方法,Java 8 之後 介面中可以使用 default 關鍵字修飾的非抽象方法。
介面不能包含成員變數,除了 static 和 final 變數。
介面不是被類繼承了,而是要被類實現。
介面支持多繼承。
介面特性
介面中每一個方法也是隱式抽象的,介面中的方法會被隱式的指定為public abstract(只能是 public abstract,其他修飾符都會報錯)。
介面中可以含有變數,但是介面中的變數會被隱式的指定為public static final變數(並且只能是 public,用 private 修飾會報編譯錯誤)。
介面中的方法是不能在介面中實現的,只能由實現介面的類來實現介面中的方法。
② 構造方法和成員方法的區別是什麼
構造方法:構造方法是用來構造類的對象的,方法名和類名相同沒有返回值。一般用 new 構造方法名() 來創建該類的對象。在不寫構造方法的情況下會有一個默認的無參構造方法。
成員方法:簡單地說就是可以通過類的實例(某個對象)調用的方法,也就是我們正常情況下使用的方法。
③ 構造方法的作用和特徵是什麼
1、構造方法名一定與類同名
2、構造方法無返回值類型(void 也不行)
3、構造方法可以沒有(默認一個無參構造方法),也可以有多個構造方法,他們之間構成重載關系
4、如果定義有參構造函數,則無參構造函數將被自動屏蔽
5、構造方法不能被繼承
6、構造方法不能手動調用,在創建類實例的時候自動調用構造方法。
④ 什麼是構造方法什麼是重載
構造方法 構造方法是一種特殊的方法,與一般的方法不同是:
1.構造方法的名字必須與定義他的類名完全相同,沒有返回類型,甚至連void也沒有。
2.構造方法的調用是在創建一個對象時使用new操作進行的。構造方法的作用是初始化對象。
3.不能被static、final、synchronized、abstract和native修飾。構造方法不能被子類繼承。
構造方法可以被重載。沒有參數的構造方法稱為默認構造方法,與一般的方法一樣,構造方法可以進行任何活動,但是經常將他設計為進行各種初始化活動,比如初始化對象的屬性。
在Java中,任何變數在被使用前都必須先設置初值.Java提供了為類的成員變數賦初值的專門功能:構造方法(constructor)構造方法是一種特殊的成員方法,它的特殊性反映在如下幾個方面:
(1)構造方法名與類名相同.
(2)構造方法不返回任何值,也沒有返回類型.
(3)每個類可以有零個或多個構造方法.
(4)構造方法在創建對象時自動執行,一般不能顯式地直接調用.
具體使用:分別計算長、寬為20、10和6、3的兩個長方形的面積。
class RectConstructor{
double length;
double width;
double area(){
return length*width;
}
RectConstructor(double width,double length){//帶參數的構造方法
this.length=length;
this.width=width;
}
}
public class RectDemo{
public static void main(String args[]) {
RectConstructor rect1=new RectConstructor(10,20);
RectConstructor rect2=new RectConstructor(3,6);
double ar;
ar=rect1.area();
System.out.println("第一個長方形的面積是"+ar);
ar=rect2.area();
System.out.println("第二個長方形的面積是"+ar);
}
}
重載 重載是不是多態?
re:
重載還是一種是多態吧,有四種形式的多態
1.虛函數多態
2模板多態
3重載
4轉換
所謂的動態和靜態區分是另一種基於綁定時間的多態分類,嚴格來說,重載是編譯時多態,即靜態多態,根據不同類型函數編譯時會產生不同的名字如int_foo和char_foo等等,以此來區別調用。故重載仍符合多態定義——通過單一標識支持不同特定行為的能力,只是重載屬於靜態多態,而不是通過繼承和虛函數實現的動態多態。
⑤ java中什麼是構造方法及其作用
無意中翻到這條提問,看了很多回答,發現歧義較重,在這里解答一下,為了避免後邊來的朋友們踩雷
新手學習Java在構造方法這里很容易踩雷,構造方法是用來初始化的,這句勉強沒錯,可構造方法是用來創建對象的,這句就錯了,實際上,在構造方法執行之前,類的內存空間已經開辟完成了,意思就是說對象已經創建了,這步是由new關鍵字來完成的,而構造方法的作用是給類中的變數進行初始化賦值
假設,假設構造方法是用來創建對象用的,就無法解釋抽象類中為什麼允許構造方法的存在,抽象類無法實例化,不能被創建,但是抽象類中允許構造方法的存在,舉例從側面證明一下:
abstract class Animal{
String name;
public Animal() {
System.out.println("抽象父類的無參構造");
}
abstract void eat();
}
class Dog extends Animal{
public Dog() {
super();
System.out.println("子類的無參構造");
}
@Override
void eat(){
}
}
public class Test {
public static void main(String[] args) {
Dog d = new Dog();
System.out.println(d.name);
}
}
隨手敲的很簡陋的一段代碼,不要在意格式上的不嚴謹,領會精神,這段代碼執行後的結果為:
抽象父類的無參構造
子類的無參構造
null
當執行Dog d = new Dog()這句代碼時,大致會分兩步,一是載入類,開辟類的內存空間,這是由new完成的,第二步執行構造方法,為類中的變數初始化賦值,在執行Dog的無參構造時,系統會默認調用父類的無參構造,也就是super(),super關鍵字是對該類的父類進行的引用,它並不是一個對象,這也是個難點,感興趣的可以去查一下,而super()這句代碼可以簡單理解為調用這個類的父類的無參構造
在上述代碼中,父類Animal是一個抽象類,而抽象類不可被實例化,如果構造方法的作用是創建對象,在這一步上邏輯就無法自洽,而實際情況是:抽象類執行了構造方法,但卻沒有創建對象,同時成員變數name也有了初始值null
⑥ 構造方法的三個特點
1. 構造方法必須與所在的類具有相同的名字。
2. 構造方法沒有返回類型,甚至連 void 也沒有。
3. 構造方法的調用是在創建一個對象時使用 new 操作符進行的。構造方法的作用是初始化
java的構造函數其實很簡單。
一個類 被實例化 也就是被new的時候 最先執行的是 構造函數,如果你有留心。你會發現很多類裡面根本沒有寫構造函數。
在java類中,如果不顯示聲明構造函數,JVM 會給該類一個默認的構造函數。一個類 可以有多個構造函數。構造函數的主要作用 一是用來實例化該類。二是 讓該類實例化的時候執行哪些方法,初始化哪些屬性。當一個類聲明了構造函數以後,JVM 是不會再給該類分配默認的構造函數。
比如一個實體類
public class entity{
private int id;
private String userName;
get...set..方法
}
如果這樣寫該類就是默認的構造函數。該類實例化的時候 id 和 username 就是默認值 即 id=0,username=null.
如果在裡面加入這樣一個方法
public entity(int id,String userName){
調用get..set..
}
如果這樣寫 該類實例化的時候 必須給出 id 和username參數。 JVM不會再給這個類默認構造函數
你也可以理解成 在沒有給構造函數的時候 JVM 給你的類加了一個這樣的函數
public entity(){
this.id=0;
this.userName=null;
}
其實構造函數是用來對一個類以及變數進行實例化。
⑦ 什麼是構造方法構造方法和普通方法有什麼區別
1樓在胡說吧?創建類會調構造方法?構造方法實在new對象的時候被調用的,是被系統自動調用的,而且一定會被調用,構造方法一般用來給對象的屬性做初始化的,構造方法沒有返回值,普通方法必須有返回值,就算不返回也得寫個
void,這就是他們的區別
⑧ java中什麼叫構造方法
構造方法是一種特殊的方法,與一般的方法不同是:
1.構造方法的名字必須與定義他的類名完全相同,沒有返回類型,甚至連void也沒有。
2.構造方法的調用是在創建一個對象時使用new操作進行的。構造方法的作用是初始化對象。
3.不能被static、final、synchronized、abstract和native修飾。構造方法不能被子類繼承。
class RectConstructor{
double length;
double width;
double area(){
return length*width;
}
//下面這個方法就是所謂的構造方法,沒有返回值,方法名與類名相同~~~
RectConstructor(double width,double length){//帶參數的構造方法
this.length=length;
this.width=width;
}
}
其實構造方法就是為了給類中成員賦初值~~~~~~~~~~~~~