对象的创建,内存模型,使用。写圆类,计算半径10和15的两个圆的面积和周长
一.对象的概念:
有类所定义的变量就是对象。
对象虽然是变量,但是对象型的变量不同于简单变量,对象中除了有数据外,对象本身还有行为。
二.对象的创建与表示:
一般地,对象的创建通过三个步骤
a.声明对象名
声明对象名的形式是:
类名 对象名;
声明一个Circle类的对象
Circle a;
b.创建对象
new运算符后跟构造方法就可以创建对象。创建对象的形式是:
new 构造方法(【实际参数】)
如果定义构造方法时,构造方法有参数,则调用构造方法还需给出实际参数,例如创建一个Circle类的对象,可用表达式:
new Circle();
c.表示对象
将声明对象和创建对象通过赋值形式结合在一起,就可以表示创建的对象。
对象的表示形式是:
对象名=new 构造方法();
例如:a=new Circle();
对象名“a”表示对象“new Circle()”。
对象的声明和创建可以用一条语句实现。
Circle a=new Circle();
可以同时声明多个对象:
Circle a=new Circle() , b=new Circle();
每一次使用“new Circle()”都创建一个全新的对象,与其他对象完全不同,a和b表示的对象是两个完全不同的对象。
三.对象的内存模型
语句:
Circle a;
是一个对象名,也是一个变量名,并不是一个真正的对象。
而表达式:
new Circle();
是真正的对象,但是它没有名字,无法使用这个对象。它占用内存,并且整个表达式的值是该对象在内存中的地址。
则赋值表达式:
a=new Circle();
是将对象的地址保存在对象变量a中。访问对象变量a就可以得到对象在内存中的位置,从而访问到这个对象。
四.对象的使用
使用对象时只能通过对象名访问对象中的成员,而不能整体使用对象。
使用对象中的域
对象名.域
使用对象的方法
对象名.方法名(【实际参数表列】)
//写圆类,计算半径10和15的两个圆的面积和周长
class Circle{
double radius; //域(属性),半径
//没写构造方法,系统默认了无参的构造方法
void setRadius(double r) {
radius=r;
}
double area() {
return Math.PI*radius*radius;
//Math是java中的一个类,其静态域PI表示圆周率
}
double perimeter(){
return 2*Math.PI*radius;
}
}
public class Example9{
public static void main(String[] args) {
double area,perim;
Circle circle=new Circle();//声明和创建对象
circle.setRadius(10);//设置圆半径
area=circle.area(); //计算圆的面积
perim=circle.perimeter();//计算圆的周长
System.out.printf("area:%.2f%n",area);//保留两位小数
System.out.printf("perimeter:%.2f%n",perim);
circle=new Circle();//创建新对象,原对象丢失
circle.setRadius(15);
area=circle.area();
perim=circle.perimeter();
System.out.printf("area:%.2f%n",area);//保留两位小数
System.out.printf("perimeter:%.2f%n",perim);
}
}
上一篇: angularJs常用事件
下一篇: 基于Storm的WordCount