C#:分文件进行程序的编写 、构造函数、构造函数的重载、析构函数的使用

使用份文件进行程序的编写在日常制作项目的时候是必不可少的,这样可以是程序更加的井然有序,便于文件的调试、调用等等,对于初学者可能不太适应,当熟悉以后那是真的好用,养成良好的习惯哟~。

代码:

定义分文件的类:(用于定义和实现各种属性,方法)

//在类的前面通常也需要关键字的声明,便于在不同的类中进行调用,这里使用的就是public修饰符进行修饰
public class Person
{
//为了让类的属性和方法在不同的类中可以进行调用,需要使用Public关键字进行修饰
//这里定义的都是字段,字段需要使用下滑线进行命名,字段可以储存多个值,然而变量只能储存一个值
private string _name; // private属性是私有的属性,只能在该类的内部进行访问,通常字段需要使用private进行修饰,默认的情况下也是自由的访问权限
//属性用于对字段进行保护,防止对字段赋值出现错误
//设置姓名字段的属性
public string Name
{
get { return _name; } // 字段在被返回的时候调用
set { _name = value; } // 字段在被赋值的时候被调用
}
private int _age;
//设置年龄字段的属性
public int Age
{

get { return _age; }

set
{
if (value > 100 || value < 0)
{

value = 0; //value是set 方法中特有的属性
}

_age = value;
}

}
private char _gender;
// 设置性别字段的属性
public char Gender
{

get
{
if (_gender != '男' && _gender != '女')
{

return _gender = '男';
}

return _gender;
} //当字段被使用的时候,将字段返回
set { _gender = value; } // 用于给字段赋值

}
public void Confition()
{
Console.WriteLine("姓名:{0},性别:{1},年龄:{2},爱好:写程序\t", this.Name, this.Gender, this.Age); // 通过属性对字段进行调用
//this关键字表示所在类的对象,具有对象的属性,如果该类中创建了多个对象,那么在执行的时候,将会多个对象一起执行
}

主函数进行调用:进行类的对象的创建,以及函数的调用:(需要注意:上面的Person类所在的命名空间与下面主函数所在的命名空间相同)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _01面向对象(命名空间)
{
class Program
{
static void Main(string[] args)
{
//类是一个框架,对象才是类的实例化
Person zhangsan = new Person(); //通过类实例化对象
//通过属性间接的访问不同类中的私有字段
zhangsan.Name ="张三";
zhangsan.Gender = '女';
zhangsan.Age = 19;
zhangsan.confition();
// 实现不同类之间的方法的调用,(如果没有进行命名空间的以用,所调用的类必须是与主函数的所在的是同一个类,并且该类的访问修饰符的权限必须要对。如果是不同类之间调用,那么需要命名空间的引用)
Console.ReadKey();

}
}
}

运行结果:

 

 

在用一个项目中添加不同的类:

 

 下面使用的是构造函数的重载、析构函数的实现,在构造函数中使用this关键字的使用。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _02面向对象
{
public class Student
{
//定义类的构造函数,进行类的对象的属性的初始化
/// <summary>
/// 构造函数,可以被重载,重载:具有相同的函数名称,不同的参数类型或者参数个数,与返回值无关
/// 注意:构造函数没有返回值,函数的名称必须与类的名称相同
/// 如果没有书写构造函数,系统将会自动的生成一个啥也不干的构造函数,当自己书写了构造函数以后,系统的构造函数将会被消除
/// 即便是自己书写的构造函数与系统默认的构造函数相同,系统的构造函数也会被消除。
/// ***构造函数将会在类的对象的实例化的时候被调用。
/// </summary>
/// <param name="name">姓名参数</param>
/// <param name="gender">性别参数</param>
/// <param name="age">年龄参数</param>
/// <param name="chinses">语文成绩参数</param>
/// <param name="math">数学成绩参数</param>
/// <param name="english">英语成绩参数</param>
public Student(string name , char gender,int age ,int chinses, int math, int english ) {
this.Name = name; //this 表示当前类的对象,当类实例化对象以后,this就表示当前实例化的对象,所在这里采用this关键字进行类的对象的初始化。
this.Gender = gender;
this.Age = age;
this.Chinese = chinses;
this.Math1 = math;
this.English = english;
}
//第二个构造函数,这个函数的代码只是上面的函数的代码的一部分,为了解决冗余代码,所以使用构造函数的之间的调用的方法

public Student(string name, int chinses, int math, int english):this (name ,'c',0,chinses ,math ,english ) //this 关键字的第二种方法
{
//第二函数的内部什么也没有。
}
//析构函数
~Student() {
Console.WriteLine("你好我是析构函数,帮您回收垃圾");
}
//定义姓名字段
private string _name;
//定义姓名字段对应的属性,属性的作用: 用于给字段进行赋值,和保护字段的作用
public string Name
{
//返回字段的时候被调用
get { return _name; }
//给字段赋值的时候被调用
set { _name = value; }
}
//定义性别字段
private char _gender;
//定义性别字段对应的属性,属性的作用: 用于给字段进行赋值,和保护字段的作用
public char Gender
{

get { return _gender; }
set { _gender = value; }
}
//定义年龄字段
private int _age;
//定义年龄字段对应的属性,属性的作用: 用于给字段进行赋值,和保护字段的作用
public int Age
{
get { return _age; }
set { _age = value; }
}
//定义语文字段
private int _chinese;
//定义语文字段对应的属性,属性的作用: 用于给字段进行赋值,和保护字段的作用
public int Chinese
{
get { return _chinese; }
set { _chinese = value; }
}
//定以数学的字段
private int _math;
//定义数学字段对应的属性,属性的作用: 用于给字段进行赋值,和保护字段的作用
public int Math1
{

get { return _math; }
set { _math = value; }
}
//定义英语字段
private int _english;
//定义英语字段对应的属性,属性的作用: 用于给字段进行赋值,和保护字段的作用
public int English
{

get { return _english; }
set { _english = value; }
}
public void messShow() {

//这里也可以不用this关键字,但是最好用上关键字,便于和局部变量进行区别,
//此时还没有局部变量,但是一旦有了局部变量,如果在没有使用this关键字的时候,将会默认是局部变量
Console.WriteLine("我叫{0},性别{1},今年{2}岁,语文成绩{3},数学成绩:{4},英语成绩{5}",this .Name ,this.Gender,this.Age ,this .Chinese,this .Math1,this.English);
}
}
}

/*
1.静态方法只能通过类的名称进行调用,不能通过类实例化对象进行调用。
2.静态变量只能访问只能访问静态字段,其他的字段不能访问
3.类中的字段默认的情况下是私有的
*/

 

在主函数中实现类的对象的调用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _02面向对象
{
class Program
{
static void Main(string[] args)
{
// 实例化类的对象
Student s = new Student("小明",'男',15,99,89,78);// 构造函数需要参数,记得进行参数的传递,使用第一种构造函数进行类的对象的初始化
s.messShow();
Student s1 = new Student("小刘",90,33,22); //使用第二种构造函数进行对象的初始化
s1.messShow();

Console.ReadKey();
}
}
}

运行结果:

 

 

posted @ 2022-09-13 10:45  LInguistic-零点  阅读(264)  评论(0编辑  收藏  举报