类的成员方法

什么是成员方法?通俗的讲,如果把一个函数写到了类里,这个函数就称为成员方法。调用成员方法与调用普通函数的机制相同。

基本语法:

访问修饰符 function 函数名(形参列表){

函数体;

}

例:现在有这样一个需要,希望人这个类可以说话、可以计算1到1000的累加结果,并且可以接收一个数n,计算1到n的累加结果,并且可以计算两个数的和。

<?phpclass Person {    public $name;    public $age;    public function speak() { //成员方法        echo "www.bianceng.cn";    }    public function count1() {        $res = 0;        for ($i = 1; $i <= 1000; $i++) {            $res+=$i;        }        return $res;    }//该方法可以接收一个n,计算1到n的累加值。    public function count2($n) {        $res = 0;        for ($i = 1; $i <= $n; $i++) {            $res+=$i;        }        return $res;    }//计算两个数的和    public function add($num1, $num2) {        return $num1 + $num2;    }}//如何使用成员方法$p1 = new Person(); //创建对象$p1->speak(); //通对对象调用成员方法$p1->count1();echo "<br />" . $p1->count1();//可以接收一个n,计算1到n的累加值echo "<br />计算结果是:" . $p1->count2(100);echo "<br />46+54的结果是:" . $p1->add(46, 54);?>

例:以面向对象开发方式编程,从网页输入一个整数,打印对应的金字塔。

MyInputView.php:

<html><head><meta http-equiv="content-type" content="text/html;charset=GBK" /></head><body><form action="Print.php" method="post">请输入层数:<input type="text" name="layer"><input type="submit" value="打印"></form></body></html>

Print.php:

<?php//引入ABC.class.php文件require_once 'ABC.class.php';//接收MyInputView.php提交的数据,并进行处理$layer=$_REQUEST['layer'];//打印金字塔$abc1=new ABC();$abc1->printstar($layer);?>

ABC.class.php:

<?phpclass ABC {//接收一个数,并打印金字塔    public function printstar($n) {        for ($i = 1; $i <= $n; $i++) {//打印空格            for ($k = 1; $k <= $n - $i; $k++) {                echo "&nbsp;";            }//打印*的个数            for ($j = 1; $j <= ($i - 1) * 2 + 1; $j++) {                echo "*";            }            echo "<br />";        }    }}?>

例:编写一个类,实现如下要求:

1 可以做四则运算;

2 也可以运算圆的面积。

3、注意隐藏域的运用hidden

CatView.php:

<html><head><meta http-equiv="content-type" content="text/html;charset=GBK" /></head><body><!--四则运算*/--><form action="CatWork.php" method="post"><h1>四则运算</h1>第一个数:<input type="text" name="num1" /><br />第二个数:<input type="text" name="num2" /><br />运算符号:<select name="oper"><option value="+">+</option><option value="-">-</option><option value="*">*</option><option value="/">/</option></select><br /><!--这里使用一个隐藏域--><input type="hidden" name="doing" value="jishuan"><input type="submit" value="开始计算"></form><form action="CatWork.php" method="post"><h1>计算圆的面积</h1>请输入半径:<input type="text" name="radius" /><br /><!--这里使用一个隐藏域--><input type="hidden" name="doing" value="area"><input type="submit" value="计算面积"></form></body></html>

CatWork.php:

<?php//接收数据//接收num1,num2,运算符号require_once 'Cat.class.php';//首先接收doing$doing = $_REQUEST['doing'];$cat1 = new cat();if ($doing == "jishuan") {    $num1 = $_REQUEST['num1'];    $num2 = $_REQUEST['num2'];    $oper = $_REQUEST['oper'];    $res = $cat1->jishuan($num1, $num2, $oper);    echo "运算结果是:" . $res . "<br />";} else if ($doing == "area") {    $radius = $_REQUEST['radius'];    echo "运算结果是:" . $cat1->circleArea($radius);}?><br/><a href="CatView.php">返回主界面</a>

Cat.class.php:

<?phpclass Cat {    function circleArea($radius) {        return 3.1415926 * $radius * $radius;    }    function jishuan($num1, $num2, $oper) {        switch ($oper) {            case "+":                return $num1 + $num2;                break;            case "-":                return $num1 - $num2;                break;            case "*":                return $num1 * $num2;                break;            case "/":                return $num1 / $num2;                break;        }    }}?>

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
, 函数
, 方法
, pdms catview12
, 四则运算
, 一个
成员
oc类方法访问成员变量、成员方法和类方法、python 类成员方法、java类方法和成员方法、结构体成员的访问方法,以便于您获取更多的相关知识。

时间: 2024-10-26 05:24:22

类的成员方法的相关文章

调用者-C#中有没有办法做到类的成员方法只对特定对象公开?或者用其他机制来实现成员方法只能被特定对象调用

问题描述 C#中有没有办法做到类的成员方法只对特定对象公开?或者用其他机制来实现成员方法只能被特定对象调用 问题是这样的: 有两个类 A 和 B,B类有一个成员是A类的对象(记为a),B类还有两个成员方法 bf1 和 bf2,现在需要方法 bf1 完全公开,而bf2只有a对象的方法能调用.能不能用什么办法做到这一点?比如在bf2方法里面增加一个判断调用者的语句,如果调用者不是a对象,就直接返回不执行. 木有悬赏分了,不知道会不会有人回答 ToT 解决方案 用 is关键字判断 if(a is A)

PHP中如何定义类及其成员属性与操作

 类的概念:类是具有相同属性和操作的一组对象的集合.它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和操作两个主要部分.在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和操作说明两个主要部分. 1.类的定义: i. 类的关键字定义使用class 1.定义一个空类 Class Person{}; 2.定义一个有成员属性和操作的类 Class Person{ 成员属性........ 操    作........ } 3.定义一个不能被继承的类,使用final

类与对象 - PHP手册笔记

原文:类与对象 - PHP手册笔记 基本概念 PHP对待对象的方式与引用和句柄相同,即每个变量都持有对象的引用,而不是整个对象的拷贝. 当创建新对象时,该对象总是被赋值,除非该对象定义了构造函数并且在出错时抛出了一个异常.类应在被实例化之前定义. 创建对象时,如果该类属于一个名字空间,则必须使用其完整名称. 在类定义内部,可以用new self和new parent创建对象. <?php $instance = new stdClass(); $assigned = $instance; $re

Python 进阶_OOP 面向对象编程_类属性和方法

目录 目录 类属性 调用类属性 查看类属性 特殊的类属性 类方法 真构造器 __new__ 类属性 在理解类属性之前要先搞清楚 实例属性 和 函数属性 之间的区别: 1. 实例属性:指的是实例化类对象的属性,需要在类中使用 self 关键字来将其和实例化对象绑定的属性. 2. 函数属性:指的是定义在函数体内的属性,其可以是实例属性,也可以是类属性. 3. 类属性:是一个与实例无关的属性,比起实例属性而言,它更加的 静态,当定义在类方法中时,并不会因为方法调用的完毕而被回收.类属性,在类定义中直接

Java---对象与类的封装

一.类和对象: package cn.hncu.Myclasslearn; /** * * @author hncu_chx * * Mylove amin */ /**类是一种数据类型,声明一个类就是定义了一个数据类型. 类的实例(instance)是类的取值,对象就是类的变量,一个对象能引用一个实例, 就像一个int变量i能够保存int类型的一个常数. 声明对象: 类 对象 MyDate d1://声明d1是MyDate类的一个对象 **/ public class MyDate {//类声

深入浅出UML类图---写得不错,备忘

九种关系总结,EA图中会用到: 关联关系(Association):双向关联,单向关联,自关联.多重性关联Multiplicity. 聚合(Aggregation):整体与部分的关系,整体对象销毁时成员对象不销毁,一般是构造函数或Set方法传入成员对象. 组合(Composition):整体与部分的关系,整体对象销毁时成员对象一并销毁,一般在构造函数中创建成员对象. 依赖关系(Dependency):Driver类依赖Car类的move方法,Driver--->Car 泛化关系(Generali

黑马程序员 一、java 概述与基础知识

获取更多资源关注Java帮帮IT资源分享网 一.黑马程序员-java 概述与基础知识 1.何为编程? 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果 的过程. 为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路.方法.和手段通 过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完 成某种特定的任务.这种人和计算机之间交流的过程就是编程.   2.Java 语言概述,历史.特点 是 SUN(Stanford Universit

【译】Java 8的新特性—终极版

文/杜琪(简书作者) 原文链接:http://www.jianshu.com/p/5b800057f2d8 著作权归作者所有,转载请联系作者获得授权,并标注"简书作者". 声明:本文翻译自Java 8 Features Tutorial – The ULTIMATE Guide,翻译过程中发现并发编程网已经有同学翻译过了:Java 8 特性 – 终极手册,我还是坚持自己翻译了一版(写作驱动学习,加深印象),有些地方参考了该同学的. Java 8 前言: Java 8 已经发布很久了,很

继承中关于属性的一些问题

和类的成员方法一样,我们也可以定义属性的重载.虚属性.抽象属性以及密封属性的概念. 与类和方法一样,属性的修饰也应符合下列规则: 属性的重载 ●在派生类中使用修饰符的属性,表示对基类中的同名属性进行重载. ●在重载的声明中,属性的名称.类型.访问修饰符都应该与基类中被继承的属性一致. ●如果基类的属性只有一个属性访问器,重载后的属性也应只有一个.但如果基类的属性同时包含get和set属性访问器,重载后的属性可以只有一个,也可以同时有两个属性访问器. 注意:与方法重载不同的是,属性的重载声明实际上