hummmm aula perfeita, os conceitos assimilados mas não estou conseguindo ainda captar o real uso do abstrato, preciso de uma utilização explicita para tal... vai amadurecendo .....rsrsrsrs ontem 24/05/2022 estava assim, hoje 25/05/2022 dia seguinte percebi a utilidade ....vai amadurecer ainda mais
Aqui está o meu código bem comentado, pra quem não entendeu direito ou teve alguma duvida: using System; abstract class Veiculo{ //Cria uma classe base Abstrata (Abstract) protected int MaxVel = 135, CurrentVel = 0; protected bool IsOn = false, IsMoving = false; public void TurnOn(){ //Declara IsOn para True (Liga o Carro) IsOn = true; } public void TurnOff(){ //Desliga o Carro Completamente IsOn = false; IsMoving = false; CurrentVel = 0; } public void SetMaxVel(int num){ //Regula (Ou Seta) a Velocidade Máxima que o carro pode atingir MaxVel = num; } public void SetCurrentVel(int num){ //Testa se o Carro está Ligado e se num é menor ou igual a //Velocidade Máxima if(IsOn && num = 1){ //Se true, O carro está em Movimento IsMoving = true; } } } public int GetCurrentVel(){ //Retorna o Valor da Velocidade Atual return CurrentVel; } public int GetMaxVel(){ //Retorna o valor da Velocidade Máxima return MaxVel; } public bool IsItOn(){ //Retorna se o carro está ligado ou não return IsOn; } public bool IsItMoving(){ //Retorna se o carro está em Movimento return IsMoving; } public void Stop(){ //Para o carro Imediatamente CurrentVel = 0; IsMoving = false; } public void Info(){ //Imprime no console todas as váriaveis sobre o carro Console.Clear(); Console.WriteLine("Ligado: {0}", IsOn); Console.WriteLine("Em Movimento: {0}", IsMoving); Console.WriteLine("Velocidade Atual: {0}", CurrentVel); Console.WriteLine("Velocidade Máxima: {0}", MaxVel); } } class Carro:Veiculo{ //Herda todas as Caracteristicas da Classe Veiculo //Caso houvesse uma classe instanciada como abstract na classe base, //Seria necessário a delcrarar aqui usando override public Carro(){ //Cria um construtor para a Classe Carro /*(Ou seja, tudo que estiver aqui vai ser executado quando instanciado como objeto em Main)*/ //Chama o Método Info da classe Base Veiculo Info(); } } class Aula_039{ static void Main(){ //Cria um objeto da classe Carro com o nome de carro Carro carro = new Carro(); } }
@@braianguerraa questão é que ele tem essas falhas de lógica por não usar alguma tecnologia que ajudasse a avaliar a qualidade do código. Isso é em todos os cursos. Ele explica até lógica, que eu acho desnecessário. Mas esquece as boas práticas.
Estou fazendo o curso desde o início, mas estou tendo muita dificuldade nessas diferentes class, não entendo em que situação irei precisar usar cada uma delas.
Apenas aprenda elas, quando chegar o momento, você vai lembrar delas e vai conseguir fazer algo que precise delas! Como as classes derivadas, se você vai montar um app de vender carros e motos e barcos, vc cria a classe "Veiculo" e as derivadas são "Carro" "Moto" "Barco", entendeu? todas elas vão herdar da "veiculo" oque um veiculo tem, que é velocidade minima e maxima, rotações por minuto de roda ou hélice, entendeu? dá pra fazer muitas coisas com classes derivadas!
Por que tem tantas tipo diferente de tudo kkkkkkk eu podia colocar simplesmente uma classe public e dava na mesma. Ou não kkkkk .o abstract ou os outros tipos so tiram recurso . Eu to perguntando oq não sei onde usar esses outros tipo ou pq usar eles
Classes abstract (também as interfaces) são como uma simplificação de código, ou seja, ajuda na organização, manutenção e por exemplo na repetição de código no caso do abstract (porque a interface obriga a implementação). Um outro exemplo, você tem duas classes que tem códigos iguais e decide fazer uma herança: namespace Test { class A { public void MetOne() { System.Console.WriteLine("Classe A feita!"); // Faz oque se pede... } public void MetTwo() { System.Console.WriteLine("Classe A feita!"); // Faz oque se pede... } } class B : A { } } O código acima foi feito de forma errada, pois, qualquer alteração na classe A afetará a classe B, então para evitar erros futuros fazemos o seguinte: namespace Test { abstract class AB { public void MetOne() { System.Console.WriteLine("Classe A feita!"); // Faz oque se pede... } public void MetTwo() { System.Console.WriteLine("Classe A feita!"); // Faz oque se pede... } } class A : AB { } class B : AB { } } Agora qualquer alteração ou manutenção na classe A será apenas da classe A. Espero que minha explicação tenha sido boa cara, abraços 👍👍👍
Mais uma aula concluída! conceito reforçado! seguindo na saga...
hummmm aula perfeita, os conceitos assimilados mas não estou conseguindo ainda captar o real uso do abstrato, preciso de uma utilização explicita para tal... vai amadurecendo .....rsrsrsrs
ontem 24/05/2022 estava assim, hoje 25/05/2022 dia seguinte percebi a utilidade ....vai amadurecer ainda mais
Aqui está o meu código bem comentado, pra quem não entendeu direito ou teve alguma duvida:
using System;
abstract class Veiculo{
//Cria uma classe base Abstrata (Abstract)
protected int MaxVel = 135, CurrentVel = 0;
protected bool IsOn = false, IsMoving = false;
public void TurnOn(){
//Declara IsOn para True (Liga o Carro)
IsOn = true;
}
public void TurnOff(){
//Desliga o Carro Completamente
IsOn = false;
IsMoving = false;
CurrentVel = 0;
}
public void SetMaxVel(int num){
//Regula (Ou Seta) a Velocidade Máxima que o carro pode atingir
MaxVel = num;
}
public void SetCurrentVel(int num){
//Testa se o Carro está Ligado e se num é menor ou igual a
//Velocidade Máxima
if(IsOn && num = 1){
//Se true, O carro está em Movimento
IsMoving = true;
}
}
}
public int GetCurrentVel(){
//Retorna o Valor da Velocidade Atual
return CurrentVel;
}
public int GetMaxVel(){
//Retorna o valor da Velocidade Máxima
return MaxVel;
}
public bool IsItOn(){
//Retorna se o carro está ligado ou não
return IsOn;
}
public bool IsItMoving(){
//Retorna se o carro está em Movimento
return IsMoving;
}
public void Stop(){
//Para o carro Imediatamente
CurrentVel = 0;
IsMoving = false;
}
public void Info(){
//Imprime no console todas as váriaveis sobre o carro
Console.Clear();
Console.WriteLine("Ligado: {0}", IsOn);
Console.WriteLine("Em Movimento: {0}", IsMoving);
Console.WriteLine("Velocidade Atual: {0}", CurrentVel);
Console.WriteLine("Velocidade Máxima: {0}", MaxVel);
}
}
class Carro:Veiculo{
//Herda todas as Caracteristicas da Classe Veiculo
//Caso houvesse uma classe instanciada como abstract na classe base,
//Seria necessário a delcrarar aqui usando override
public Carro(){
//Cria um construtor para a Classe Carro
/*(Ou seja, tudo que estiver aqui vai ser executado
quando instanciado como objeto em Main)*/
//Chama o Método Info da classe Base Veiculo
Info();
}
}
class Aula_039{
static void Main(){
//Cria um objeto da classe Carro com o nome de carro
Carro carro = new Carro();
}
}
muito bom sua compreesão da aula!! se mantiver esse ritmo vai ser um grande programador.
Excelente amigo, código compreensível e bem comentado.
Aula ótima, me ajudou muito na minha EAD 👏👏
Muito bom cara! continue que tá sensacional!!
Obg pelo vídeo ❤️
Show mestre
Aula top!
👍👍👍
Tem que impedir a velocidade atual de ser maior que a máxima:
velocidadeAtual = Math.Min(velocidadeMaxima, velocidadeAtual + velocidade);
pior ele esqueceu de fazer isso kkkk
mas ainda o ponto da aula deu pra entender
@@braianguerraa questão é que ele tem essas falhas de lógica por não usar alguma tecnologia que ajudasse a avaliar a qualidade do código. Isso é em todos os cursos. Ele explica até lógica, que eu acho desnecessário. Mas esquece as boas práticas.
toma
using System;
namespace Aula39ClassesMetodosAbstratos
{
abstract class Veiculo
{
protected int velMax;
protected int velAtual;
protected bool ligado;
public Veiculo(){
ligado = false;
velAtual = 0;
}
public void setLigado(bool ligado)
{
this.ligado = ligado;
}
public int getVelAtual()
{
return velAtual;
}
abstract public void aceleracao(int mult);
}
class Carro:Veiculo
{
public Carro()
{
velMax = 120;
}
override public void aceleracao(int multi)
{
velAtual += 10*multi;
}
}
class Program
{
static void Main(string[] args)
{
Carro c1 = new Carro();
c1.aceleracao(2);
c1.aceleracao(-1);
Console.WriteLine(" e vel atual é:{0}",c1.getVelAtual());
}
}
}
Estou fazendo o curso desde o início, mas estou tendo muita dificuldade nessas diferentes class, não entendo em que situação irei precisar usar cada uma delas.
Apenas aprenda elas, quando chegar o momento, você vai lembrar delas e vai conseguir fazer algo que precise delas! Como as classes derivadas, se você vai montar um app de vender carros e motos e barcos, vc cria a classe "Veiculo" e as derivadas são "Carro" "Moto" "Barco", entendeu? todas elas vão herdar da "veiculo" oque um veiculo tem, que é velocidade minima e maxima, rotações por minuto de roda ou hélice, entendeu? dá pra fazer muitas coisas com classes derivadas!
mesma coisa por aqui, mas decidi deixa rolar e ver se no momento oportuno consigo aplicar elas...
existe o modificador de acesso package?
Package é algo relacionado ao java pra organizar pastas n ?
cara tira um pouco do zoom ficaconfuso vendo poucas palavras
ja faz um tempo que o cara só usa carro de exemplo agora que percebi xD
up
Por que tem tantas tipo diferente de tudo kkkkkkk eu podia colocar simplesmente uma classe public e dava na mesma. Ou não kkkkk .o abstract ou os outros tipos so tiram recurso . Eu to perguntando oq não sei onde usar esses outros tipo ou pq usar eles
Classes abstract (também as interfaces) são como uma simplificação de código, ou seja, ajuda na organização, manutenção e por exemplo na repetição de código no caso do abstract (porque a interface obriga a implementação). Um outro exemplo, você tem duas classes que tem códigos iguais e decide fazer uma herança:
namespace Test
{
class A
{
public void MetOne()
{
System.Console.WriteLine("Classe A feita!");
// Faz oque se pede...
}
public void MetTwo()
{
System.Console.WriteLine("Classe A feita!");
// Faz oque se pede...
}
}
class B : A { }
}
O código acima foi feito de forma errada, pois, qualquer alteração na classe A afetará a classe B, então para evitar erros futuros fazemos o seguinte:
namespace Test
{
abstract class AB
{
public void MetOne()
{
System.Console.WriteLine("Classe A feita!");
// Faz oque se pede...
}
public void MetTwo()
{
System.Console.WriteLine("Classe A feita!");
// Faz oque se pede...
}
}
class A : AB { }
class B : AB { }
}
Agora qualquer alteração ou manutenção na classe A será apenas da classe A.
Espero que minha explicação tenha sido boa cara, abraços 👍👍👍
@@drcoffees muito obg mn ❤️😍
visto