使用$this关键字调用汽车类自身的方法

声明一个类:car.class.php用于在类的公有方法中调用私有方法的返回值

<?php
    class Car{
        private $color;
        private    $type;
        //构造方法为参数颜色和类型赋值
        function __construct($color,$type){
            $this->color=$color;
            $this->type=$type;
        }
        //switch...case...语句取得post方法传递过来的值,一个case对应一个单选按钮的值
        private function get_color(){
            switch($this->color){
                case 'red':
                $mycolor='红色';
                break;
                case 'white':
                $mycolor='白色';
                break;
                case 'black':
                $mycolor='黑色';
                break;
                case 'blue':
                $mycolor='宝石蓝';
                break;
            }
            return $mycolor;
        }
        private function get_type(){
            switch($this->type){
                case 'benz':
                $mytype='奔驰';
                break;
                case 'horse':
                $mytype='宝马';
                break;
                case 'audi':
                $mytype='奥迪';
                break;
                case 'jieda':
                $mytype='捷达';
                break;
            }
            return $mytype;
        }
        //公有方法调用私有方法,输出返回值!
        function getinfo(){
            
            echo "我的汽车是:".$this->get_color().$this->get_type();
        }
    }
?>


创建HTML表单,通过提交可以输出我对于汽车的选择信息

<html>
<head>
<title>单选按钮</title>
</head>
<body>
    <table width="500" align="center" border="10" height='40'>
    <form action="test.php" method="post">
        <tr><td colspan='4'>请选择颜色:</td></tr>
        <tr>
        <td>红色:<input type='radio' name='color' value='red'></td>
        <td>白色:<input type='radio' name='color' value='white'></td>
        <td>黑色:<input type='radio' name='color' value='black'></td>
        <td>宝石蓝:<input type='radio' name='color' value='blue'></td>
        </tr>
        <tr><td colspan='4'><?php echo "<br>"?></td></tr>
        <tr><td colspan='4'>请选择类型:</td></tr>
        <tr>
        <td>奔驰:<input type='radio' name='type' value='benz'></td>
        <td>宝马:<input type='radio' name='type' value='horse'></td>
        <td>奥迪:<input type='radio' name='type' value='audi'></td>
        <td>捷达:<input type='radio' name='type' value='jieda'></td>
        </tr>
        <tr align='center'><td colspan='4'><input type='submit' name='dosub' value='提交'></td></tr>
        <tr>
        <td colspan='4'>
        <?php
            if(isset($_POST['dosub'])){
                include "car.class.php";
            if(($_POST['color']=='')||($_POST['type']=='')){
                echo "请点击单选按钮选择汽车的类型和颜色!<br>";
            }
            else{
                $mycar=new Car($_POST['color'],$_POST['type']);
                $mycar->getinfo();
            }
            }
        ?>
        </td>
        </tr>
    </form>
    </table>
</body>
</html>


### 回答1: 是的,this关键字可以在的所有方法使用。this关键字代表当前对象的引用,可以用于访问当前对象的属性和方法,或者调用当前对象的构造函数。但是,如果在静态方法使用this,则会报编译错误,因为静态方法是与而不是实例相关联的,无法使用this引用实例。 ### 回答2: 在Java中,this关键字代表当前的实例。它可以在的所有方法使用。 this关键字的主要作用是引用当前对象。由于每个对象都有自己独有的属性和方法,因此在方法内部使用this关键字可以明确指明是当前对象调用方法或访问属性。 当方法的参数和实例变量名相同时,使用this关键字可以区分两者。例如,如果一个方法的参数名为name,而中又定义了一个名为name的实例变量,那么在方法内部使用this.name就可以访问实例变量而不是方法的参数。 此外,在一个方法内部调用其他方法时,也可以使用this关键字,表示当前对象在调用其他方法。这在对象之间的协作和方法的内部调用非常有用。 需要注意的是,this关键字只能在非静态方法使用,因为静态方法是独立于任何特定实例的。因此,在静态方法使用this关键字是非法的。 总而言之,this关键字可以在的所有方法使用,用于引用当前对象并访问实例变量或调用其他方法。它方便了对当前对象的操作和对方法/变量的正确访问。 ### 回答3: this关键字可以在的所有方法使用。 this关键字指代当前对象,它可以在的所有方法使用,包括构造方法、实例方法和静态方法。在方法内部使用this关键字可以引用当前对象的成员变量、成员方法和其他构造方法。 在实例方法中,this关键字可以用来引用当前对象的成员变量和成员方法。例如,可以使用this关键字访问当前对象的属性或调用当前对象的方法,在方法中可以通过this.field或this.method()的方式来使用。 在构造方法中,this关键字用来调用同一个的其他构造方法。通过使用this关键字调用其他构造方法,可以实现构造方法的重载和代码的复用。 值得注意的是,在静态方法中不能使用this关键字,因为静态方法是不属于任何实例对象的,无法使用this来引用当前对象的成员。 综上所述,this关键字可以在的所有方法使用,除了静态方法外。它是指向当前对象的引用,在方法内部使用this关键字可以访问当前对象的成员变量、成员方法和其他构造方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值