A is akin to a class. It can functions, modifiers, state variables, events, structures, and enums. Contracts also support inheritance. You can implement inheritance by copying code during compiling. Smart contracts can also be polymorphic.
The following an example of a smart contract:
contract Sample
{
//state variables
uint256 data;
address owner;
//event definition
event logData(uint256 dataToLog);
//function modifier
modifier onlyOwner() {
if (msg.sender != owner) throw;
_;
}
//constructor
function Sample(uint256 initData, address initOwner){
data = initData;
owner = initOwner;
}
//functions
function getData() returns (uint256 returnedData){
return data;
}
function setData(uint256 newData) onlyOwner{
logData(newData);
...