通过自带部分result.class.php分流,由于这三个类继承shape这个类,让我们来看看,面向对象的继承。

shape.class.shape档

<?php
abstract class shape{
public $shapeName;
abstract function area();
abstract function perimeter(); /*
* 全部的实体类都要继承shape以便于统一方法和属性
* 验证 validate方法一致
* */
protected function validate($value,$message="形状"){
if($value == "" ||!is_numeric($value)||$value < 0){
echo '<font color="red">'.$message.'必须为非负值的数>字,而且不能为空</font><br>';
return false;
} else{
return true;
}
} } ?>

这是一个抽象类,优点就在于,第一个,定义了统一的属性和方法。这样在result里面就能够统一的调用$shapename属性和area()和perimeter()。

同事还能够构造公用的方法。比方验证方法validate。

下面是详细每一个类的实现

rect.class.php实现rect矩形类

<?php
class Rect extends Shape {
private $width = 0;
private $height = 0;
function __construct() {
$this->shapeName = "矩形"; if ($this->validate ( $_POST ["width"], '矩形的宽度' ) & $this->validate ( $_POST ["height"], '矩形的高度' )) { $this->width = $_POST ["width"]; $this->height = $_POST ["height"];
} else {
exit ();
} $this->width = $_POST ["width"]; $this->height = $_POST ["height"];
}
function area() {
return $this->width * $this->height;
}
function perimeter() {
return 2 * ($this->width + $this->height);
}
} ? >

triangle.class.php实现triangle三角形类

<?

php
class Triangle extends Shape{
private $side1=0;
private $side2=0;
private $side3=0; function __construct(){
$this->shapeName="三角形";
if($this->validate($_POST['side1'],'三角形的第一边')&&
$this->validate($_POST['side2'],'三角形的第一边')
&&$this->validate($_POST['side3'],'三角形的第一边')){
$this->side1=$_POST["side1"];
$this->side2=$_POST["side2"];
$this->side3=$_POST["side3"];
}
if(!$this->validateSum()){
echo '<font color="red">三角形的两边之和必须大于第三边</font>';
exit;
}
}
//海伦公式
function area(){
$s=($this->side1+$this->side2+$this->side3)/2;
return sqrt( $s*($s-$this->side1)*($s-$this->side2)*($s-$this->side3)); }
function perimeter(){
return $this->side1+$this->side2+$this->side3;
} private function validateSum(){
$condition1=($this->side1+$this->side2) > $this->side3;
$condition2=($this->side1+$this->side3) > $this->side2;
$condition3=($this->side2+$this->side3) > $this->side1;
if($condition1 && $condition2 && $condition3){
return true;
} else{return false;}
}
}
?>

circle.class.php实现circle圆类

<?php
class Circle extends Shape{
private $radius=0; function __construct(){
$this->shapeName="圆形";
if($this->validate($_POST['radius'],'圆的半径')){
$this->radius.$_POST["radius"];
}else{exit;}
$this->radius=$_POST["radius"];
}
function area(){
return pi()*$this->radius*$this->radius;
}
function perimeter(){
return 2*pi()*$this->radius;
}
} ?>

全部的类都继承了shape类,实现里面的方法和为属性赋值。用构造方法和详细不用的计算方法实现每一个类不同的多态性,同一时候对外部调用人来说,都是调用area()和perimter()方法。此为封装。都封装成在方法内部类可以。

版权声明:本文博主原创文章,博客,未经同意不得转载。

php:的图形计算器的面向对象的版本武器2的更多相关文章

  1. php:兄弟连之面向对象版图形计算器1

    曾经看细说PHP的时候就想做这个,可是一直没什么时间,这次总算忙里偷闲搞了代码量比較多的project. 首先,文档结构,都在一个文件夹下就好了,我的就例如以下. 一開始,进入index.php文件. ...

  2. PHP.11-PHP实例(二)-面向对象实例(图形计算器)

    面向对象实例(图形计算器) [PHP语法详解] 1.实现外观 #不同的动作,输出不同的表单 ###关于PHP中,无法使用localhost访问.php文件[http://www.360doc.com/ ...

  3. PHP学习笔记06——面向对象版图形计算器

    index.php 用于显示页面 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "h ...

  4. PHP图形计算器(计算三角形矩形周长面积)

    运用PHP面向对象的知识设计一个图形计算器,同时也运用到了抽象类知识,这个计算器可以计算三角形的周长和面积以及矩形的周长和面积.本图形计算器有4个页面:1.PHP图形计算器主页index.php;   ...

  5. php实现图形计算器

    存档: index.php <html> <head> <title>图形计算器开发</title> <meta http-equiv=" ...

  6. [图形计算器]Desmos

    一.图形计算器 var elt = document.getElementById('calculator'); var calculator = Desmos.GraphingCalculator( ...

  7. 英特尔® 图形性能分析器 2019 R1 版本

    了解并下载全新英特尔® 图形性能分析器 2019 R1 版本.新版本新增了 DX11 和 Vulkan 多帧流捕获模式,可以在“帧和图形跟踪分析器”中分析 Vulkan 应用.此外,帧分析器还添加了 ...

  8. 图形计算器(geogebra[5.0.278.0])使用QQ浏览器打开下载

    点击这里下载Geogebra图形计算器

  9. PHP面向对象实例(图形计算器)

    效果:

随机推荐

  1. 最近跑hadoop遇到的一些问题

    一. [#|2013-09-16T18:19:02.663+0800|INFO|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterpris ...

  2. cocos2d-x3.0rc 版 设置模拟器窗体大小

    由于刚接触这职业时间不是非常长.也是第一次写博客,假设有错误的地方还请大神们指出,开通这博客目的非常easy相互学习和讨论(更重要的是记录工作中学到的东西以方便以后自己查阅) 先后參与过两个项目.只是 ...

  3. LoadRunner获取一个独特的价值在执行的场景

    /* * * 笔者:古柏涛 * 迄今:2015-2-26 * E-mail:gubotao@foxmail.com * * 内容概要: * 本代码产生一个从1970年1月1日0时開始累计以毫秒为单位的 ...

  4. vmware 10 注冊码

    先安装VMware Workstation 10.0原版,然后用以下的随意一个VMware Workstation序列号注冊 1Y0LW-4WJ9N-LZ5G9-Z81QP-92PN7 JU052-F ...

  5. 辛星和你解读PHP递归

    事实上递归成其他的编程语言可以是初学者练习功能,但由于PHP特殊性,我们把它拿出来具体解释什么.关于什么是递归先说说.我是第一个承认正在寻求一些递归阶乘,例如,我们写一个函数,然后问多少的阶乘. 看以 ...

  6. OCP解决问题052-- DROP PROFILE app_user

    133.You created a profile APP_USER and assigned it to the users. After a month, you decide to drop t ...

  7. .NET Framework 4.0 以上版本 下载地址

    https://msdn.microsoft.com/zh-cn/library/5a4x27ek(v=vs.110).aspx

  8. zoj 1738 - Lagrange&#39;s Four-Square Theorem

    称号:四方形定理.输出可以表示为一个数目不超过四个平方和表示的数. 分析:dp,完全背包.背包分割整数.可用一维分数计算,它也可以被写为一个二维团结. 状态:设f(i,j,k)为前i个数字,取j个数字 ...

  9. 第十二章——SQLServer统计信息(4)——在过滤索引上的统计信息

    原文:第十二章--SQLServer统计信息(4)--在过滤索引上的统计信息 前言: 从2008开始,引入了一个增强非聚集索引的新功能--过滤索引(filter index),可以使用带有where条 ...

  10. Java中关于OOM的场景及解决方法(转)

    http://developer.51cto.com/art/201112/305696.htm 1.OOM for Heap=>例如:java.lang.OutOfMemoryError: J ...