1. C/C++
  2. Java
  3. PHP
  4. Python

OO编程中类的权限控制 “BUG”

PHP


<?php
class Human {
  private $money = 512;
  public function get_money($people){
    return $people->money;
  }
  public function set_money($people){
    $people->money -= 128;
  }
}

$lijie = new Human();
$laowenqi = new Human();
echo "<br>老问奇现在有的钱:".$laowenqi->get_money($laowenqi);
echo "<br>李杰现在有的钱:".$lijie->get_money($lijie);
$laowenqi->set_money($lijie);//让老问奇将李杰的钱减少128
echo "<br>老问奇现在还剩的钱:".$laowenqi->get_money($laowenqi);
echo "<br>李杰现在还剩的钱:".$lijie->get_money($lijie);
?>

Java

class Human
{
  private int money = 512;
  public int get_money(Human people)
  {
    return people.money;
  }
  public void set_money(Human people)
  {
    people.money -= 128;
  }
}

public class Test
{
  public static void main(String[] args) {
    Human lijie = new Human();
    Human laowenqi = new Human();
    System.out.println("老问奇现在有的钱:"+laowenqi.get_money(laowenqi));
    System.out.println("李杰现在有的钱:"+lijie.get_money(lijie));
    laowenqi.set_money(lijie);//让老问奇将李杰的钱减少128
    System.out.println("老问奇现在还剩的钱:"+laowenqi.get_money(laowenqi));
    System.out.println("李杰现在还剩的钱:"+lijie.get_money(lijie));
  }
}

Python

class Human:
    money = 512
    def get_money(self,people):
        return people.money;
    def set_money(self,people):
        people.money -= 128;

if __name__ == "__main__":
    lijie = Human()
    laowenqi = Human()
    print("老问奇现在有的钱:"+str(laowenqi.get_money(laowenqi)))
    print("李杰现在有的钱:"+str(lijie.get_money(lijie)))
    laowenqi.set_money(lijie)    #让老问奇将李杰的钱减少128
    print("老问奇现在还剩的钱:"+str(laowenqi.get_money(laowenqi)))
    print("李杰现在还剩的钱:"+str(lijie.get_money(lijie)))

 

C++

#include <iostream>

using namespace std;

class Human
{
	private:
		int money;
	public:
		void init(int mon)
		{
			money = mon;
		}
		int get_money(Human people)
		{
			return people.money;
		}
		void set_money(Human people)
		{
			 people.money -= 128;
		}
  
};

void main(int argc, char const *argv[]) {
  /* code */
  Human lijie;
  lijie.init(512);
  Human laowenqi;
  laowenqi.init(512);
  cout <<"老问奇现在有的钱:"<<laowenqi.get_money(laowenqi)<<endl;
  cout <<"李杰现在有的钱:"<<lijie.get_money(lijie)<<endl;
  laowenqi.set_money(lijie); //让老问奇将李杰的钱减少128
  cout <<"老问奇现在还剩的钱:"<<laowenqi.get_money(laowenqi)<<endl;
  cout <<"李杰现在还剩的钱:"<<lijie.get_money(lijie)<<endl;
}

C++ 没有出现问题!!!

===待续===