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() ; //匿名对象,对象只调用一次
}
}