OOP面向对象——构造方法

理解:

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);
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值