构造器的特征:
》具有与类相同的名称
》它不声明返回类型。(与声明void不同)
》不能被static final synchronized abstract native 修饰,不能有return 语句返回值
构造器的作用:1)创建对象;2)给对象初始化
》如:Oder o = new Oder()l; Person p = new Person ("Pete,15");
》如同我们规定每个"人" 一出生就必须先洗澡,我们就可以在“人”的构造器中加入完成
“洗澡”的程序代码,于是每个"人"一出生就会自动完成“洗澡”,程序就不必再需要为每个
刚出生的”人“一个个的告诉他们要“洗澡”了。
package prectice;
/**
* 注意:构造器(构造方法)不是方法的一种,
*
* 主要原因是:构造器和方法不一样,方法是可以通过(对象.方法)来调用的 ,但是构造器是为了 造对象的。
*
* fields 属性 constructor 构造器(又称构造方法)
*
* 类的结构之三:构造器 (或构造方法、constructor)的使用
*
* 一、构造器的作用:
* 1.创建对象
* 2.初始化对象属性
* 二、说明:
* 1.如果没有显式的定义类的构造器,系统则默认提供一个空参的构造器
* 2.定义构造器的格式:权限修饰符 类名(形参列表){}
* 3.一个类中定义的多个构造器,彼此构成重载。(构造器都是同类且同名的)
* 4.一旦我们显式的定义了类的构造器,系统将不提供默认的空参构造器
* @author ZZ1299
*
*/
//第一步,先写类,第二步 ,创造类的对象
public class PersonTest {
public static void main (String[] args){
/**
* 创建类的对象 这里创造Person 类型的一个p
* 即 变量类型 变量名 = new Person()——————右边是创造的对象
* 复习; 变量类型 变量名 = new 变量类型 等号左边是什么类型,右边就应该是什么类型,所以右边
* 本质上是 new 构造器
* 变量类型 变量名 = new 构造器
*
*/
Person p = new Person();//这里的Person()是一个空参构造器
p.eat();
Person p1= new Person("Tom");
//赋值成功之后可以直接通过System.out.println(p1.name);直接调用
System.out.println(p1.name);//这里没有体现封装性也可以直接调用了 输出Tom
}
}
//造一个类
class Person {
//属性
String name;
int age;
//构造器 现在把Person p = new Person();这个默认的构造器显式的写出来了
public Person(){
System.out.println("Person()....");
}
//做一个带形参的构造方法 可以初始化所造对象的当前的属性
public Person(String n ){
name = n; //这里把形参赋值给name 意味着造对象的同时,把name的值也进行了赋值
/**
* 上面的代码中: public static void main (String[] args) 的Person p1= new Person("Tom");
* Tom赋值给了n,n给了name,这个name是当前创建的对象p1的
*
*/
}
//还可以在初始化新的对象,初始化的时候把name,age都初始化了
public Person (String n ,int a){
name = n;
age =a;
}
/**
* 一个类中可以有多个构造器,可以把这些构造器称之为 构造器的重载
*
*
*/
public void eat(){
System.out.println("人可以吃饭");
}
public void study(){
System.out.println("人可以学习");
}
}