了解类与对象:
一:对象代表现实世界中可以明确标识的一个实体,类为对象定义属性和行为
每个对象都有自己独特的标识,状态和行为。
其状态(特征)或属性由当前值的“ 数据域 ”表示。
如圆对象具有一个数据域的半径,它是标识圆的属性。也如矩形对象具有数据域宽度和高度,他们也是描述矩形的属性。
其行为(动作)由方法定义。调用对象的一个方法就是要求对象完成一个动作。举例略。
二:类是创建对象的模板。
JAVA类使用变量定义数据域,使用方法定义动作。类还提供了一种称为“构造方法”的特殊类型的方法,调用它可以创建一个新对象。构造方法本身可以完成任何动作,但设计它是为了完成初始动作的。如:初始化对象的数据域。
三:类和对象的图示使用UML类图(统一建模语言)
四:定义类和创建对象
TestSimpleCircle.java
package chapter9;
public class TestSimpleCircle {
/** Main method */
public static void main(String[] args) {
// Create a circle with radius 1
SimpleCircle circle1 = new SimpleCircle();
System.out.println("The area of the circle of radius "
+ circle1.radius + " is " + circle1.getArea());
// Create a circle with radius 25
SimpleCircle circle2 = new SimpleCircle(25);
System.out.println("The area of the circle of radius "
+ circle2.radius + " is " + circle2.getArea());
// Create a circle with radius 125
SimpleCircle circle3 = new SimpleCircle(125);
System.out.println("The area of the circle of radius "
+ circle3.radius + " is " + circle3.getArea());
// Modify circle radius
circle2.radius = 100; // or circle2.setRadius(100)
System.out.println("The area of the circle of radius "
+ circle2.radius + " is " + circle2.getArea());
}
}
// Define the circle class with two constructors
class SimpleCircle {
double radius;
/** Construct a circle with radius 1 */
SimpleCircle() {
radius = 1;
}
/** Construct a circle with a specified radius */
SimpleCircle(double newRadius) {
radius = newRadius;
}
/** Return the area of this circle */
double getArea() {
return radius * radius * Math.PI;
}
/** Return the perimeter of this circle */
double getPerimeter() {
return 2 * radius * Math.PI;
}
/** Set a new radius for this circle */
void setRadius(double newRadius) {
radius = newRadius;
}
}
程序很简单,第一个类TestSimpleCircle为主类,唯一目的是测试第二个类SimpleCircle类。(ps:当两个类在同一文件时,文件中只能有一个类是公共(public)类,类与文件同名)
编写JAVA程序的方法有多种,可将上两个类组合成一个。
SimpleCircle.java
public class SimpleCircle {
/ **主要方法* /
public static void main(String [] args){
//创建一个半径为1的圆
SimpleCircle circle1 =new SimpleCircle();
System.out.println(“半径圆的区域”
+ circle1.radius +“is”+ circle1.getArea());
//创建一个半径为25的圆
SimpleCircle circle2 =new SimpleCircle(25);
System.out.println(“半径圆的区域”
+ circle2.radius +“is”+ circle2.getArea());
//创建一个半径为125的圆
SimpleCircle circle3 =new SimpleCircle(125);
System.out.println(“半径圆的区域”
+ circle3.radius +“is”+ circle3.getArea());
//修改圆的半径
circle2.radius = 100; //或circle2.setRadius(100)
System.out.println(“半径圆的区域”
+ circle2.radius +“is”+ circle2.getArea());
}
}
double radius;
/ **构造一个半径为1 * /
SimpleCircle(){
radius= 1;
}
/ **构造一个指定半径的圆* /
SimpleCircle(double newRadius){
radius = newRadius;
}
/ **返回此圈的区域* /
double getArea(){
return radius*radius* Math.PI;
}
/ **返回此圈的周长* /
double getPerimeter(){
return 2 *radius* Math.PI;
}
/ **为此圈设置一个新的半径* /
void setRadius(double newRadius){
radius = newRadius;
}
}
可知,在一个类中假如main方法可以作为测试这个类的办法之一。
五:复习题
9.1描述对象和它的定义类间的关系?
类为对象定义属性和行为
类是创建对象的模板
对象是类的实例
9.3
如何声明一个对象的引用变量?
ClassName v;(声明对象的引用变量的语法)
9.4
如何创建一个对象?
new ClassName();(创建对象的语法)