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();
}
}