【Java学习笔记】第四天——类,构造方法与对象的创建,参数传值,对象的组合

Q:java中参数传值的机制?

A:方法中参数变量的值是调用者指定的值的拷贝

Q:怎样理解将两个类型相同的数据互相赋值的情况?

A:类型相同两个数据,互相赋值就是使得他们的引用相同。类型相同的两个对象/数据一旦引用相同,就有一样的实体(变量)

Q:怎样创建一个对象?

A:包括两部分:

(1)声明对象 :

         学生 哈拉泽空:

此时,哈拉泽空只是个空对象,里面什么也没有。此时不要让空对象去访问变量或方法,,否则编译通过,运行出现NullPointerException

(2)为对象分配变量(创建对象):用new运算符和构造方法

         哈拉泽空 = new 学生();

此时,才可以调用哈拉泽空这个对象,才不会出现NullPointerExceprion

Q:什么叫对象的引用和实体

A:对象本身中存放着引用,自己可以操作分配个自己的变量,调用类提供的方法。分配给对象的变量称作对象的“实体”

这图说明了,两个类型相同的对象,如果二者的引用相同,那么二者就具有完全相同的“实体”

 

Example:

用面向对象的思想编写程序,求圆锥的体积

main方法


public class Example01 {

	public static void main(String[] args) {
		Circle c=new Circle();
		c.SetRadius(5.0);
		Circular cir=new Circular(10.0);
		cir.setbottom(c);
		System.out.println("底面的的半径"+c.radius);
		System.out.println("圆锥的高"+cir.height);
		System.out.println("地面的面积"+c.CaculateS());
		System.out.println("圆锥的体积"+cir.getvolume());
		
		c.SetRadius(7.0);
		System.out.println("修改圆的半径,底面半径同样发生变化");
		System.out.println(cir.getbottomRadius());
	}

}

圆锥类


public class Circular {
	double height;
	Circle c;
	Circular(double height) {
		this.height=height;
	}
	double getvolume() {
		if(c==null) 
			return -1;
		else
			return c.CaculateS()*height/3.0;
	}
	
	void setbottom(Circle c) {
		this.c=c;
	}
	double getbottomRadius() {
		return c.radius;
	}
	double getbottomS() {
		return c.CaculateS();
	}
}

圆类


public class Circle {
	double radius;
	void SetRadius(double radius) {
		this.radius=radius;
	}
	double CaculateS() {
		return 3.14*radius*radius;
	}
}

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章