㈠ 在Java API 文檔中,很多類都有構造方法,但是這個構造方法怎麼調用呀
構造方法每個類都有,用來創建類實例
File file=new File("文件路徑");//由於參數是File,所以首先得new一個File
FileReader f=new FileReader(file);//把file傳進去即可
㈡ java中如何調用帶類類型參數的構造方法
1 如果在子類中調用 ,那麼先new 一個參數所在類型的對象a,即 A a = new A(),然後在子類中用super(a)就可以調用父類的帶類參數構造方法。
2 如果在其他類中調用,那麼也需要先new 一個參數所在類型的對象a,即 A a=new A();,然後new調用類的的時候把參數傳進去就可以了,B b = new B(a)。
㈢ 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中Date類中的Date(String s)構造方法如何使用
Date(String s)構造方法的使用方法如下:
Date date = new Date("2016-02-24");
Date(String s)構造方法表示從一個字元串構造一個Date實例。
不推薦使用。 在JDK 1.1版中,被DateFormat.parse(String
s)代替。
構造一個Date對象,並將其初始化為字元串s所對象的日期和時間。對字元串的解析將和parse(java.lang.String)方法一樣。
參數:
s - 一個反映日期的字元串。
㈤ Java類的構造方法,怎麼
你這里構造方法調用其他構造方法,不能這么用。可以用this關鍵字去代替。
public Student(String name, int id){
this(name); //調用本類一個參數的構造方法。 用this調用其他的語句,必須要放在構造函數中的第一個語句。
this.id = id;
}
public Student(String name){
this.name = name;
}
㈥ java中類的構造方法和普通的方法在使用上有什麼區別
java中類的構造方法只在創建對象時調用,
如:String
str=new
String("dssd");
調用了String的構造方法。
java中類的普通的方法,用對象就可以調用
如:str.Length();
調用length()方法,求str的長度
㈦ java的構造方法使用
一個是你的有一個print拼寫錯誤
還有就是Epreson裡面的內容放在main函數中,才可以
給你修改了一下,你對比一下
classPerson{
privateStringname;//私有屬性name
privateintage;//私有屬性age
publicvoidtall(){//公有方法輸出」我是誰叫什麼「
System.out.println("我是"+name+"今年"+age);
}
publicvoidperson(){//構造方法,把對象的值賦值給屬性
name="張三";
age=20;
}
publicvoidsetName(Stringn){//設置屬性name的介面
name=n;
}
publicStringgetName(){//讀取屬性name的介面
returnname;
}
publicvoidsetAge(inta){//設置屬性age的介面
if(a>0&&a<100)
age=a;
}
publicintgetAge(){//讀取屬性age的介面
returnage;
}
}
//====================================================
publicclassEpreson{
publicstaticvoidmain(String[]args){
Personper=newPerson();//創建並實例化對象
per.tall();//輸出驗證構造方法是否改變了類屬性的賦值
//System.out.println("===============================來一行分隔符===========================");
per.setName("李四");//更改類屬性name
per.setAge(99);//更改類屬性age
per.tall();//輸出驗證類屬性是否被更改
}
}
㈧ Java中構造方法如何調用此外一個類中必須有構造方法嗎難道普通方法不行嗎
構造方法在new一個該類對象時自動調用。
類必須有構造方法。即便不寫構造方法編譯器也會生成一個隱式的無參構造方法。
㈨ 關於JAVA,類的構造方法
構造方法是一種特殊的方法,與一般的方法不同是:
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);
}
}