**简介:**如果需要在实例化对象的同时就为这个对象的属性进行赋值,可以通过构造方法来实现。构造方法是类的一个特殊成员。
构造方法的定义:
[修饰符] 方法名 ([参数列表]){
//方法体
}
构造器需要满足以下三个条件:
构造方法分为两种:
class Person{
//类的构造方法
public Person{
System.out.println("调用了无参构造方法");
}
}
public class Example{
public static void main(String[] args){
Person p = new Person(); //实例化Person对象
}
}
//运行结果为:调用了无参构造方法
在通过"new Person()"实例化Person对象时会自动调用该类的构造方法
class Person{
//声明int类型的变量age
int age;
public Person(int a){
age = a; //为age属性赋值
}
//定义speak()方法
public void speak(){
System.out.println("我今年"+age+"岁了");
}
}
public class Example{
public static void main(String[] args){
Person p = new Person(18); //实例化Person对象
p.speak();
}
}
//运行结果:我今年18岁了
通过有参构造方法可以实现对属性的赋值。"new Person(18)"会调用有参构造方法来实例化一个Person对象,并传入参数18,对age进行赋值,Person对象调用speak()方法时,age属性已经被赋值为18。
脚下留心:
在Java中的每一个类都至少有一个构造方法,如果在一个类中没有显示地定义构造方法,系统会自动为这个类创建一个默认的构造方法,这个默认的构造方法没有参数,在其方法体中没有任何代码,即什么也不做。
下面两种写法完全相同:
//第一种
class Person{
}
//第二种
class Person{
public Person(){
}
}
以上都是书上总结
补充:
构造器:
package com.kuang;
public class People {
//一个类什么都不写,它也会存在一个方法
//显示的定义构造器
String name;
//实例化初始值
//1.使用new关键字,本质是在调用构造器
public People(){
}
//有参构造:一旦定义了有参构造,无参构造必须显示定义
public People(String name){
this.name = name;
}
public static void main(String[] args) {
//new 实例化一个对象
People people = new People("施刚龙");
System.out.println(people.name);//施刚龙
}
}
package com.kuang;
public class People {
//一个类什么都不写,它也会存在一个方法
//显示的定义构造器
String name;
//实例化初始值
//1.使用new关键字,本质是在调用构造器
public People(){
}
//有参构造:一旦定义了有参构造,无参构造必须显示定义
public People(String name){
this.name = name;
}
}
package com.kuang;
public class Application {
public static void main(String[] args) {
//new 实例化一个对象
People people = new People("施刚龙");
System.out.println(people.name);//施刚龙
}
}