JAVA基础(十四2.0)
构造方法
快捷键//右键——-》soure-》Generate Gonstructo using Fields
个人理解:
作用是当使用new关键字创建对象时对类进行初始化赋值。如果没有定义任何形式的构造方法,会有一个默认空参的构造方法,有自己的构造方法,系统消除默认空参构造。
代码
public class 方法名{
//空
}
特点:
1.方法名称和类名相同
2.不用定义返回值类型
3.不可以写return语句
正文:
只要在new对象时,知道其执行的构造方法是什么,就可以在执行这个方法的时候给对象进行属性赋值。
l 构造方法的格式:构造方法只能在创造对象是时使用
修饰符 构造方法名(参数列表)
{
}
public class name{
public name () {
System.out.println("构造方法被调用了");
}
}
l 构造方法的体现:
n 构造方法没有返回值类型。也不需要写返回值。因为它是为构建对象的,对象创建完,方法就执行结束。
n 构造方法名称必须和类名保持一致。
n 带返回值就是普通方法
n 构造方法没有具体的返回值。
构建:
public class Person {
//添加private 私有无参数的构造方法,即外界不能通过new Person();语句创建本类对象
//成员属性age和name私有化
private String name;
private int age;
//构造方法,没有参数列表
public Person () {
System.out.println("构造方法被调用了");
}
//重载
//构造方法,拥有参数列表
public Person (String name,int age) {
// 接受到创建对象时传递进来的值,将值赋给成员属性
//this本类对象
this.name=name;
this.age =age;
}
public String getName() {
return name;
}
public void setName(String name) { //调用本类方法中调用本类构造方法,调那个却决于参数列表 this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
调用:
public static void main(String[] args) {
//构造方法调用,调一次创建一个方法,new 时就调用方法,不new 不调。所以p与p2没有任何关系。
Person p= new Person();
//根据参数列表的不同调不同的构造方法, 同时赋值
Person p2= new Person("蝴蝶",32);
//调空参时为 null ..00 System.out.println(p.getName()+".."+p.getAge());
//调 实参时 蝴蝶.。32
System.out.println(p2.getName()+".."+p2.getAge());
//有参构造,系统消除默认空参构造
//带返回值就是普通方法
}
}
总结:
1.构造方法调用,调一次创建一个方法,new 时就调用方法,不new 不调。
2. 根据参数列表的不同调不同的构造方法, 同时赋值
3. 调空参时为 null ..00
4.修改调用setget(传参);
默认构造方法和细节
加默认构造方法。
class Person {
//如果没有显示指定构造方法,编译会在编译时自动添加默认的构造方法
//public Person(){} //空参数的默认构造方法
}
若创建对象时不需要明确具体的数据,这时可以不用书写构造方法(不书写也有默认的构造方法)。
l 构造方法的细节:
1、一个类中可以有多个构造方法,多个构造方法是以重载的形式存在的
2、构造方法是可以被private修饰的,作用:其他程序无法创建该类的对象。
3、私有无参的构造方法,即外界不能通过 new person;语句创建本类对象
4、多个构造方法是以重载的形式存在
构造方法和一般方法区别
- 构造方法:对象创建时,就会调用与之对应的构造方法,对对象进行初始化;
一般方法:对象创建后,需要方法功能时才会调用。
- 构造方法,在对象创建时,会调用且只调用一次。
一般方法,对象创建后,可以被调用多次。
构造方法:
public(修饰符) class(定义类的关键字)person(类名)(){
//无参
Public person(类名)(){ //语句块 }
//带一个参数
Public person(类名)(String(变量类型) name(变量名)){ //语句块 }
}
一般方法:
定义类:
public(修饰符) class(定义类的关键字)person(类名){
private(修饰符) static(修饰符)
String(变量类型) s(变量名) = "hello world";
下面是方法的定义
public(修饰符) static(修饰符) void(返回值类型) main(方法名)(String[] args(参数)){
System.out.println(s);(代码语句)
}
}
有了构造方法之后可以对对象的属性进行初始化,那么还需要对应的set和get方法吗?
需要相应的set和get方法,因为对象在创建之后需要修改和访问相应的属性值时,在这时只能通过set或者get方法来操作。
·调用类中的属性:this.属性;
|·调用类中的方法:this.方法();
|·调用类中的构造:this();
|·表示当前对象