Classes e objetos C#

1.
Objeto de Definição: Uma entidade usada para descrever coisas objetivas. Tudo é objeto
Pessoas, ar, livros. . .
Classe: Uma coleção de objetos com as mesmas propriedades e métodos.
Humanos, frutas, livros. . .
2. Formato
[modificador] class nome da classe
{ propriedade; método; } Regras de definição de nomes de classes: (a) Regra de Pascal: a letra no início de cada palavra é maiúscula (b) nomes de classes devem ser substantivos e frases nominais, conforme completo como possível Propriedades do Word: char sex = 'male'; float hight = 1.70f; String hairColor = "black"; método: void PrintMsg() { Console.WriteLine(sex); Console.WriteLine(hight); Console.WriteLine( hairColor ); } 3. Nome da classe de criação de objeto nome do objeto (variável) = novo nome da classe (); 4. Propriedade e chamada de método People p = new People (); Console.WriteLine(p.sex);//chamar propriedade p .PrintMsg();//chama o método























5. Formato de definição do método
: [modificador] tipo de retorno nome do método ([lista de parâmetros])
{ corpo do método; } tipo de retorno: tipo de dados, void (sem valor de retorno) Se o método não tiver valor de retorno, o método deve gerar o resultado · Se houver um valor de retorno, este método não precisa gerar o resultado, mas deve haver uma chamada de método de valor de retorno (return): · Chamada sem valor de retorno: nome do objeto. nome do método(); · Chamada com valor de retorno : variável = nome do objeto. methodName();







// 设定义一个三角形类,定义两个方法,求三角形的周长和面积
    int a = 3, b = 4, c = 5;//三边
    //周长方法无返回值无参数
    void ZhouChang()
    {
    
    
        int d=a+b+c;
        print("三角形的周长是:"+d);
    }
    //面积方法有返回值无参数
    int MianJi()
    {
    
    
        int e = a * b / 2;
        return e;
    }
	void Start () 
	{
    
    
       Triangle sjx = new Triangle();//创建新对象
        sjx.ZhouChang();
        
        int a = sjx.MianJi();
        print("三角形的面积是:"+a);
	}

Quatro estruturas do método:
• nenhum parâmetro e nenhum valor de retorno
• nenhum parâmetro e valor de retorno
• parâmetro e nenhum valor de retorno
• parâmetro e valor de retorno

class ZongJie
 {
    
    
  //方法的四种结构
  //1.无参无返回值
  void JiaFa()
  {
    
    
   int a = 1, b = 1, c;
   c = a + b;
   Console.WriteLine("加法:" + c);
   }
   //2.无参有返回值
   int JianFa()
   {
    
    
    int a = 1, b = 1, c;
    c = a - b;
    return c;
   }
   //3.有参无返回值
   void ChenFa(int a, int b)
    {
    
    
    int c = a * b;
    Console.WriteLine("乘法:" + c);
    }
    //4.有参有返回值
    float ChuFa(float a, float b)
     {
    
    
      float c = a / b;
      return c;
     }       
    void QiuYu(int a, int b=2)//当不给b赋值时,则默认是2
    {
    
    
     int c = a % b;
     Console.WriteLine("求余:"+c);
    }
    static void Main(string[] args)
     {
    
    
     //创建对象
      ZongJie zj = new ZongJie();
      //1.无参无返回值的调用
      zj.JiaFa();
      //2.无参有返回值的调用
      int jf= zj.JianFa();
      Console.WriteLine("减法:"+jf);
      //3.有参无返回值的调用
      zj.ChenFa(1,2);
      //4.有参有返回值的调用
      float cf=zj.ChuFa(5, 2);
      Console.WriteLine("除法:"+cf);

     //  zj.QiuYu(3);
     //  zj.QiuYu(3, 4);//4把2覆盖,3%4=3
      }
    }

6. Variáveis ​​locais e variáveis ​​de membro
string name;//Variáveis ​​de membro, o sistema fornece um valor por padrão
void Print()
{ int age=20;//Variáveis ​​locais } têm escopos diferentes: o escopo de variáveis ​​locais é limitado ao método que o define O escopo das variáveis ​​de membro é visível em toda a classe. O valor inicial é diferente: o sistema dará um valor inicial à variável de membro. O sistema não atribuirá um valor inicial à variável local . Para uma variável estática método, altere o tipo para uma classe estática b. Variáveis ​​estáticas compartilham um espaço de memória na memória c. Métodos estáticos só podem chamar variáveis ​​estáticas, não variáveis ​​não estáticas d. Na mesma classe, métodos estáticos podem chamar diretamente métodos estáticos, podem não chame diretamente o método não estático 8.this: refere-se ao uso disso da instância da classe: a. Quando a variável de membro e a variável local tiverem o mesmo nome, se você quiser chamar a variável de membro, use this b. Quando o construtor chamar um ao outro, use this this
















 int id = 101;//成员变量
 string name;
 void Get()
 {
    
    
  int id = 1001;//局部变量
  Console.WriteLine(id);//就近原则1001
  Console.WriteLine(this.id);//101
  }
public TestThis():this(4,"张三")
{
    
    
 }
 public TestThis(int id,string name)
 {
    
    
  this.id=id;
  this.name = name;
  Console.WriteLine(this.id);
  Console.WriteLine(this.name);
}

9. Definição de método de construção
: Um método com o mesmo nome de método e nome de classe, sem nenhum tipo de retorno e sem
recursos void: Se o método de construção não for usado, o sistema fornecerá um método de construção sem argumentos por padrão
Função: Inicializar variáveis ​​de membro

Class People
{
    
    
string name;
string sex;
public People()
{
    
    
name = "张三";
sex = "男";
}
public People(string a, string b)
 {
    
    
  name = a;
  sex = b;
  Console.WriteLine(name+"\t"+sex); 
 }
static void Main(string[] ages)
{
    
    
 People p = new People();
 People p1 = new People("李四","男");
 People p2 = new People("王二","男");
  }
 }
 }

10. Sobrecarga de métodos
Regras para sobrecarga de métodos:
• Os nomes dos métodos devem ser iguais.
• As listas de parâmetros devem ser diferentes.
• Os tipos de retorno dos métodos podem ou não ser os mesmos.
• Simplesmente ter um tipo de retorno diferente não é suficiente para chamar uma sobrecarga de método.
11.
Formato da matriz de objeto: nome da classe [] nome do objeto = novo nome da classe [comprimento];

Class people
{
    
    
string name;
string sex;
People[] people = new People[2];
void Set()
{
    
    
People p1 = new People();
p1.name = "张三";
p1.sex = "男";
People[0]=p1;

People p2 = new People();
p2.name = "李四";
p2.sex = "男";
People[1]=p2;
}
void Get()
{
    
    
 foreach(var p in people)
  {
    
    
   Console.WriteLine(people.name+"\t"+people.sex);
  }
}
static void Main(string[] args)
{
    
    
People p = new People();
p.Set();
p.Get();
}
}

Acho que você gosta

Origin blog.csdn.net/weixin_44706943/article/details/125826111
Recomendado
Clasificación