面向物件 構造方法
阿新 • • 發佈:2019-02-18
1 構造方法
1.1 構造方法的定義格式
class 類名稱
{
訪問許可權 類名稱(型別1引數1,型別2 引數2)
{
程式語句 ;
//構造方法沒有返回值
}
}
在構造方法的宣告中注意:
1,構造方法的名稱必須與類名稱一致。
2,構造方法的宣告處不能有任何返回值型別的宣告。
3,不能在構造方法中使用return返回一個值。
1.2 宣告構造方法
class Person
{
public Person() //宣告構造方法
{
System.out.println("宣告一個構造方法" ) ;
}
}
public class ConsDemo01
{
public static void main(String[] args)
{
System.out.println("宣告物件,Person per = null ;") ;
Person per = null ; //宣告物件 不會去呼叫構造方法
System.out.println("例項化物件,per = new Person();") ;
per = new Person() ;//例項化物件
}
}
1.3 構造方法的目的
構造方法的目的是,為類中的屬性初始化。既然是方法,則方法中肯定可以傳遞引數,此時定義一個構造方法,同時向裡邊傳遞引數。
class Person
{
private String name ; //宣告姓名屬性
private int age ; //宣告年齡屬性
public Person(String n,int a) //宣告構造方法,為類中屬性初始化
{
this.setName(n) ; //構造方法中呼叫set()方法
this.setAge(a); //構造方法中呼叫set()方法
}
public void setName(String n)
{
name = n ; //為類中屬性賦值
}
public void setAge(int a)
{
age = a ; //為類中屬性賦值
}
public String getName()
{
return name ;
}
public int getAge()
{
return age ;
}
public void tell()
{
System.out.println("姓名: "+this.getName()+";年齡: "+this.getAge()) ;
//直接呼叫get()方法輸出
}
}
public class ConsDemo02
{
public static void main(String[] args)
{
Person per = new Person("張三",20) ; //宣告並例項化物件
per.tell() ;
}
}
1.4 構造方法的過載
構造方法和普通方法一樣,都可以過載的。
class Person
{
private String name ; //宣告姓名屬性
private int age ; //宣告年齡屬性
public Person() //宣告一個無參構造
{
}
public Person(String n) //宣告有一個引數的構造方法
{
this.setName(n) ; //呼叫set()方法對類中屬性初始化
}
public Person(String n,int a) //宣告構造方法,為類中屬性初始化
{
this.setName(n) ; //構造方法中呼叫set()方法
this.setAge(a); //構造方法中呼叫set()方法
}
public void setName(String n)
{
name = n ; //為類中屬性賦值
}
public void setAge(int a)
{
age = a ; //為類中屬性賦值
}
public String getName()
{
return name ;
}
public int getAge()
{
return age ;
}
public void tell()
{
System.out.println("姓名: "+this.getName()+";年齡: "+this.getAge()) ;
//直接呼叫get()方法輸出
}
}
public class ConsDemo02
{
public static void main(String[] args)
{
Person per = new Person("張三",20) ; //宣告並例項化物件
per.tell() ;
}
}
1.5 匿名物件
匿名物件,沒有名字,在java中如果一個物件只使用一次,則可以將其定義成匿名物件。
class Person
{
private String name ; //宣告姓名屬性
private int age ; //宣告年齡屬性
public Person(String n,int a) //宣告構造方法,為類中屬性初始化
{
this.setName(n) ; //構造方法中呼叫set()方法
this.setAge(a); //構造方法中呼叫set()方法
}
public void setName(String n)
{
name = n ; //為類中屬性賦值
}
public void setAge(int a)
{
age = a ; //為類中屬性賦值
}
public String getName()
{
return name ;
}
public int getAge()
{
return age ;
}
public void tell()
{
System.out.println("姓名: "+this.getName()+";年齡: "+this.getAge()) ;
//直接呼叫get()方法輸出
}
}
public class ConsDemo02
{
public static void main(String[] args)
{
new Person("張三",20).tell() ; //匿名物件,物件只調用一次
}
}