构造方法
- 使用new+构造方法 创建一个新的对象
- 构造方法也是方法,是定义在Java类中的一个用来初始化对象的方法
- 构造方法与类名相同且没有返回值
构造方法的语句格式
public 构造方法名(){
//初始化代码
}
其中可以指定参数,没有参数的构造方法叫做无参构造方法,把有参数的构造方法叫做有参构造方法
无参构造方法的创建
创建一个Telphone类以及一个InitialTelphone+入口函数(main函数)
开始,类里面没有任何方法就可以使用了
package com.imooc;
public class InitialTelphone {
public static void main(String[] args) {
//通过无参的构造方法可以创建对象
Telphone phone=new Telphone();
}
}
但是,没有这个方法,我们怎么调用呢?
原因是, 如果我们没有指定构造方法时,那么系统会自动帮我们生成一个无参的构造方法;如果我们对系统的无参的构造方法不满意,可以自己定义一个无参的构造方法。
package com.imooc;
public class Telphone {
public Telphone(){
System.out.println("无参的构造方法执行了!");
}
}
run后,结果为:无参的构造方法执行了!
有参的构造方法的创建
有参的构造方法就是初始化对象的值,有参构造方法和无参的构造方法相同
package com.imooc;
public class Telphone {
float screen;
float cpu;
float mem;
public Telphone(float newScreen,float newCpu,float newMem){
screen=newScreen;
cpu=newCpu;
mem=newMem;
System.out.println("有参的构造方法执行了!");
}
}
package com.imooc;
public class InitialTelphone {
public static void main(String[] args) {
//通过有参的构造方法创建对象并给对象中的实例变量赋初值
Telphone phone2=new Telphone (5.0f,1.4f,2.0f);
}
}
当有指定的构造方法,无论是有参、无参的构造方法都不会自动添加无参的构造方法
、
有参的构造方法与无参的构造方法都属于方法的重载
当给实际变量赋值是,可能不合理(比如屏幕尺寸不应<3.5f),所以应该加一个判断
package com.imooc;
public class Telphone {
float screen;
float cpu;
float mem;
public Telphone(float newScreen,float newCpu,float newMem){
if(newScreen<3.5f){
System.out.println("您输入的参数有问题,自动赋值3.5f");
screen=3.5f;
}else{
screen=newScreen;
}
cpu=newCpu;
mem=newMem;
System.out.println("有参的构造方法 ");
}
}
run以后结果为:您输入的参数有问题,自动赋值3.5f
有参的构造方法