了解类与对象:
一:对象代表现实世界中可以明确标识的一个实体,类为对象定义属性和行为
每个对象都有自己独特的标识,状态和行为。
其状态(特征)或属性由当前值的“ 数据域 ”表示。
如圆对象具有一个数据域的半径,它是标识圆的属性。也如矩形对象具有数据域宽度和高度,他们也是描述矩形的属性。
其行为(动作)由方法定义。调用对象的一个方法就是要求对象完成一个动作。举例略。
二:类是创建对象的模板。
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();(创建对象的语法)