---
# System prepended metadata

title: 'Session Three : Checkin'

---

# Session Three : Checkin 
Autora: Isabela Silva Sousa 

[toc]

## Regras Abstração de Funções
>[color=purple]Mapa Mental
![](https://i.imgur.com/7DhZ1ZR.png)

>[color=hotpink]Tipos compostos são tipos por várias variaveis por uma ou mais variaveis. E nós acessamos essas variaveis através de uma variavel que representa esse tipo composto.

>[color=purple]Exemplo:
```Csharp=
public class Retangulo
{
   public double Base {get; set;}
   public double Altura {get; set;}
}

Retangulo ret = new Retangulo();
ret.Base = 10;
ret.Altura = 5;

double x = ret.Base;
double y = ret.Altura;
```

>[color=hotpink] Quando colocamos a atrubuição de get e set em uma variavel ela ganha um poder, onde conseguimos controlar a escrita e a leitura dela se é possível ler e alterar as informações dessa variavel.
>Quando fazemos isso essas variaveis passam a serem chamadas de propriedades e não apenas de variaveis.

>[color=hotpink]Para acessar essa variavel é preciso criar um tipo composto:
>- **nome do tipo composto;**
>- **nome da variavel;**
>E ao invés de inicializarmos ela com um valor, nós iremos criala na memória, feito através d operador "new", repetindo o nome do tipo e abrindo e fechando parenteses. 

>[color=purple]Exemplo:
```Csharp=
Retangulo ret = new Retangulo();
ret.Base = 10;
ret.Altura = 5;
```
Também é possível colocar funções dentro de uma classe. Ao invés das funções ficarem soltas no codigo elas estarão agrupadas em uma classe também.
Podendo ser acessada da mesma forma através    de uma variavel que apresenta essa classe.

>[color=purple]Exemplo:
```Csharp=
public class Trigonometria
{
	public double AreaRetangulo (double Base, double Altura)
	{
		double Area = Base * Altura;
		return Area;
	}
	
	public double PerimetroRetangulo (double Base, double Altura)
	{
		double per = Base + Base + Altura + Altura;
		return per;
	}
}

Trigonometria trig = new Trigonometria();

double x = trig.AreaRetangulo(10, 4);
Console.WriteLine("Area Retangulo:" + x);

double y = trig.PerimetroRetangulo(20, 5);
Console.WriteLine("Perimetro Retangulo:" + y);
```

>[color=hotpink]Nós poderiamos fazer com que essas fuções fossem funções de classe, ou seja, funções que não necessitariam da criação de uma variavel. Isso poderia ser feito colocando a palavra "Static".
>Quando criamos funções estaticas, elas não são necessariamente obrigatorias para serem instânciadas, não e preciso criar uma variavel. Acessamos a função através da própria classe.

>[color=purple]Exemplo:
```Csharp=
public class Trigonometria
{
    public static double AreaRetangulo (double Base, double Altura)
    {
       double area = Base * Altura;
       return area;
    }
    
    public static double PerimetroRetangulo (double Base, double Altura)
    {
       double per = Base + Base + Altura + Altura;
       return per;
    }
}
```

## O que é o Public ?

>[color=hotpink] O public vai disponibilizar a visibilidade de uma função para todos que estão fora da função. Só quem esta dentro são as funções que estão entre as chaves {} do nosso objeto.
>Sendo assim, a visibilidade public significa que quem esta fora dessas chaves pode enxergar, e é por isso que conseguimos ver as funções.
>Se ao invés de public colocassemos private, ocorreria um erro no código, pois a função só estaria vísivel dentro do objeto. Fora do objeto ela não pode ser vista.


