一、构造方法的由来
1.创建某个类的对象,需要对属性赋值,有了具体数值,对象才是确定的实例而非抽象的概念。
2.给属性赋值越早越好,最早的时刻是对象创建时,由此就有了构造方法,它在对象创建时调用。
二、构造方法的使用
1.对象创建的语句为:
类名 对象名=new 类名()
2.new后面的方法就是构造方法
3.创建对象时,是通过调用构造方法为对象的成员变量赋初始值。
4.当构造方法没有参数时,虚拟机会自动给成员变量赋默认值;当构造方法有参数时,将按照传递的参数初始化成员变量。
元素类型 | 默认初始值 |
boolean | false |
char | '\u0000' |
整数(int) | 0 |
浮点数(float) | 0.0 |
对象 | null |
三、构造方法是特殊的类,特殊之处为:
1.构造方法的方法名与类名相同
2.构造方法没有返回值,不加void修饰,不能在方法中使用return语句
3.构造方法的主要作用是初始化成员变量/初始化对象
4.构造方法的调用比较特殊,是在创建类的新对象时,由系统自动调用该类的构造方法,并且只调用一次
(注意:1.Java中可以不定义构造方法,系统会生成一个默认的构造方法
2.这个构造方法的名字与类名相同,它没有任何参数
3.如果用户自定义了构造方法,系统将不再生成无参数的构造方法)
四、实例运用
1.
答案:
class Box
{
private double width;
private double height;
private double depth;
public Box()
{
width=10;height=10;depth=10;
}
public Box(double w,double h,double d)
{
width=w;
height=h;
depth=d;
}
public double volume()
{
return width*height*depth;
}
}
public class BoxTest
{
public static void main(String[] args)
{
Box box=new Box();
Box box1=new Box(10,20,30);
double v=box.volume();
System.out.println("box:"+v+"boxl:"+box1.volume());
}
}
2.
答案:
class Car
{
String color;
String brand;
int price;
public Car()
{
color="白色";
brand="奥迪";
price=20;
}
public Car(String c,String b,int p)
{
color=c;
brand=b;
price=p;
}
public String getcolor()
{
return color;
}
public String getbrand()
{
return brand;
}
}
public class CarTest
{
public static void main(String[] args)
{
Car car=new Car();
System.out.println("Car's color:"+car.getcolor());
System.out.println("Car's brand:"+car.getbrand());
}
}
3.
答案:
class Student
{
private int number;
private String name;
private double score;
public void setscore(double a)
{
score=a;
}
public double getscore()
{
return score;
}
public Student(int b,String n,double sc)
{
number=b;
name=n;
score=sc;
}
}
public class StudentTest
{
public static void main(String[] args)
{
Student stu=new Student(1001,"zhangsan",89);
System.out.println("zhangsan="+stu.getscore());
}
}