官术网_书友最值得收藏!

  • Java 9 with JShell
  • Gastón C. Hillar
  • 515字
  • 2021-07-09 18:46:46

Generating classes to create objects

Imagine that we have to draw and calculate the perimeters and areas of three different rectangles. You will end up with three rectangles drawn with their widths and height values and their calculated perimeters and areas. It would be great to have a blueprint to simplify the process of drawing each rectangle with their different width and height values.

In object-oriented programming, a class is a template definition or blueprint from which objects are created. Classes are models that define the state and behavior of an object. After declaring a class that defines the state and behavior of a rectangle, we can use it to generate objects that represent the state and behavior of each real-world rectangle.

Note

Objects are also known as instances. For example, we can say each rectangle object is an instance of the Rectangle class.

The following picture shows two rectangle instances named rectangle1 and rectangle2. These instances are drawn with their width and height values specified. We can use a Rectangle class as a blueprint to generate the two different Rectangle instances. Note that rectangle1 has the width and height values of 36 and 20, and rectangle2 has the width and height values of 22 and 41. Each instance has different values for their width and height. It is very important to understand the difference between a class and the objects or instances generated through its usage. The object-oriented programming features supported in Java 9 allow us to discover which blueprint we used to generate a specific object. We will use these features in many examples in the upcoming chapters. Thus, we can determine whether each object is an instance of the Rectangle class or not.

The following picture shows two regular pentagon instances named pentagon1 and pentagon2. These instances are drawn with their length of side values specified. We can use a RegularPentagon class as a blueprint to generate the two different RegularPentagon instances. Note that pentagon1 has the length of a side value of 20, and pentagon2 has the length of a side value of 16. Each instance has different values for its length of a side.

The following picture shows four ellipse instances named ellipse1, ellipse2, ellipse3, and ellipse4. These instances are drawn with their semimajor axis and semiminor axis values specified. We can use an Ellipse class as a blueprint to generate the four different Ellipse instances. Note that each ellipse has its own specific values for the semimajor and semiminor axes.

We recognized nine completely different real-world objects from the Web Service requirements, and therefore, we can generate the following nine classes to create the necessary objects:

  • Circle
  • Ellipse
  • EquilateralTriangle
  • Square
  • Rectangle
  • RegularPentagon
  • RegularHexagon
  • RegularOctagon
  • RegularDecagon
Tip

Note the usage of Pascal case for class names. Pascal case means that the first letter of each word that composes the name is capitalized, while the other letters are in lowercase. This is a coding convention in Java. For example, we use the EquilateralTriangle name for the class that will be the blueprint that will allow us to generate multiple equilateral triangles.

主站蜘蛛池模板: 思茅市| 耒阳市| 临沭县| 旌德县| 新化县| 循化| 屏南县| 华蓥市| 宝兴县| 和田市| 双柏县| 申扎县| 福安市| 樟树市| 乌鲁木齐市| 平利县| 珠海市| 鸡泽县| 景德镇市| 兴隆县| 四平市| 湛江市| 那曲县| 合阳县| 高邮市| 乌鲁木齐县| 横峰县| 美姑县| 晋中市| 阳信县| 阿克陶县| 佛教| 闽清县| 平潭县| 衡东县| 怀柔区| 丰镇市| 林口县| 诏安县| 潜江市| 信阳市|