理解:
1.构造方法的定义
2.调用,返回值,声明对象 new运算符
3.默认构造方法
实例:Box.java
package 类_构造方法;
/**
* ===========类,构造方法(调用),方法与返回值,声明对象 new运算符=================
*
* 1.使用关键字class来创建类。类就是对象的模板(template),而对象就是类的一个实例(instance)
* 2.在类中,数据或变量被称为实例变量(instancevariables),代码包含在方法(methods)内。
* 3.定义在类中的方法和实例变量被称为类的成员(members)
* 4.用点号“.”运算符的两个用法 http://blog.csdn.net/anmei2010/article/details/4091227
* 5.继承无法继承父类构造方法
*/
//使用关键字class来创建Box类,类声明只是创建一个模板(或类型描述),它并不会创建一个实际的对象
class Box {
double width;//变量:访问这些变量,用点号“.”运算符:mybox.width = 100;
double height;
double depth;
/**
* ===========方法与返回值============
* 1.方法一般的形式: 返回值类型 方法名(自变量列表) {...方法体...}
* 2.方法返回的数据类型必须与该方法指定的返回类型相兼容
* 3.接收方法返回值的变量(例如本例中的变量vol)也必须与指定方法返回值的类型相兼容。
*/
//<<<<<<<-------构造方法------->>>>>>>>>
/**
* 1.构造函数(constructor)在对象创建时初始化,它与它的类同名
* 2.一旦定义了构造函数,在对象创建后,在new运算符完成前,构造函数立即自动调用。
* 3.构造函数没有任何返回值,假如返回值后变成普通方法
* 4.this关键字的几种用法:
* 5.如果类中没有构造方法,系统会默认创建一个无参的构造方法
*/
Box() { //无参的构造方法
System.out.println("BOx的构造方法");
}
// Box(double w,double h,double d) { //有参的构造方法
// width = w;
// height = h;
// depth = d;
// }
//this关键字:一个方法需要引用调用它的对象时会用到this关键字。this可以在引用当前对象的所有方法内使用
Box(double w,double h,double d) { //有参的构造方法
this.width = w;
this.height = h;
this.depth = d;
}
//<<<<<<<-------构造方法------->>>>>>>>>
//volume()返回一个盒子的体积。
double volume() {
return width * height * depth;//第70行定义double型vol来接收返回的double型值
}
//=========加入带自变量的方法============
//创建一个自变量代表盒子尺寸,增加程序的可用性
void setDim(double w,double h,double d) {
width = w;
height = h;
depth = d;
}
}
//***********************class BoxDemo4********************************************
class BoxDemo4 {
public static void main(String args[]) {//main()方法作为程序的入口
/**
* ===========声明对象 new运算符============
*new运算符动态地为一个对象分配地址。它的通用格式如下:class-var = new classname( );class-var 是所创建类类型的变量。
*classname 是被实例化的类的名字。new有可能由于内存不足而无法给一个对象分配内存。如果出现这种情况,就会发生运行时异常
*/
//要真正创建一个Box对象,你必须使用下面的语句:Box mybox = new Box();
/**
* 第一行声明了mybox,把它作为对于Box类型的对象的引用。当本句执行后,mybox 包
*含的值为null,表示它没有引用对象。这时任何引用mybox的尝试都将导致一个编译错误
* 第二行创建了一个实际的对象,并把对于它的引用赋给mybox 。现在,你可以把mybox作
*为Box的对象来使用。但实际上,mybox仅仅保存实际的Box对象的内存地址。
* Box mybox;第一行
* mybox = new Box();第二行
* */
Box mybox1 = new Box();// mybox1,2就是Box的一个实例
Box mybox2 = new Box();//new分配内存空间,调用Box()方法
/*Box mybox3 = mybox2;
mybox和mybox3将引用同样的对象。当你将一个对象引用赋值给另一个对象引用时,你并没有创建该对象的一个拷贝,而是仅仅对引用的一个拷贝*/
double vol;//定义一个double类型的vol
//=====赋值===========
/*// 赋值给mybox1的实例变量width
mybox1.width = 10;//点号“.”运算符可以访问本类中的变量
mybox1.height = 20;
mybox1.depth = 15;
//给mybox2的实例变量赋予不同的值
mybox2.width = 3;
mybox2.height = 6;
mybox2.depth = 9;*/
//点号“.”运算符可以调用setDim(10,20,15)setDim(double w,double h,double d)构造方法
mybox1.setDim(10,20,15);
mybox2.setDim(3,6,9);
//输出第一个箱子的体积
vol = mybox1.volume();
System.out.println("Volume is " + vol);
//输出第二个箱子的体积
vol = mybox2.volume();
System.out.println("Volume is " + vol);
}
}