Update in one script show in another - Properties

I have a player script which is using the get/set methods to forward money status to a GUI script. And in the GUIHandler script it get’s myPlayer.Money and puts it in a label, although when I update in my Player script it doesn’t update in the GUI script. I’ve been using the Properties script tutorial thingy from Unity’s official learning website, intermediate scripting course.

Here is the player script (player.cs)

using UnityEngine;
using System.Collections;

public class player : MonoBehaviour {
	
	public int money;
	
	public int Money
	{
		get
        {
            //Some other code
            return money;
        }
        set
        {
            //Some other code
            money = value;
        }
	}
	
	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
		money++;
	}
}

And here is the GUIControls script (GUIControls.cs)

using UnityEngine;
using System.Collections;

public class GUIControls : MonoBehaviour {
	
	public GUIStyle moneySkin = null;
	
	public Texture icon;
	public Texture money;
	
	public int playerMoney;
	
	
	
	void Update () {
		player myPlayer = new player();
		playerMoney = myPlayer.Money;
		Debug.Log(myPlayer.Money);
	}
	
	void OnGUI () {
		//GUI.Box (new Rect (10,10,100,50), new GUIContent("This is text", icon));
		//GUI.DrawTexture(Rect(10,10,60,60), icon, ScaleMode.ScaleToFit, false, 10.0f);
		
		//myPlayer.ToString();
		
		GUI.DrawTexture(new Rect(10,Screen.height - 160,120,120), icon); //brain
		GUI.depth = 0;
		GUI.Label (new Rect (30,Screen.height - 150,100,50), "Brainwashiness");
		
		GUI.DrawTexture(new Rect(10,10,50,50), money); //money
		GUI.depth = 0;
		GUI.Label (new Rect (70,10,100,50), ""+playerMoney, moneySkin);
	}

}

How can it increment the value you see almost at the bottom (“”+playerMoney) when it’s updating in the Player script?

Thanks!

So after we have established that the problem is with the new statement on a MonoBehavior, here is a step by step working solution to hopefully get you in the right direction:

A. Use this Player.cs script (minimalistic, for demo purposes):

using UnityEngine;
using System.Collections;

public class Player : MonoBehaviour {

	public int money = 0;
	public int Money { get{ return money; } set{ money=value; } }

	void Update () {
		money++;
	}

}

B. Use this for GuiControls:

using UnityEngine;
using System.Collections;

public class GuiControls : MonoBehaviour {

	public Player player;

	void Update () {
		Debug.Log(player.Money);
	}
	
}

C. Create an empty object in the scene, call it Player, and attach Player.cs to it.
D. Create an empty object in the scene, call it GUI and attach GuiControls.cs to it.
E. Drag the Player object onto the Player variable in the GUI object’s inspector.
F. Play and watch those debug statements coming in.