【C#】之 类及其方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/molihuakai_118/article/details/81836406

#一、类
##1、什么是类
  在面向对象语言的结构化设计中,我们把那些看得见、摸得着、具体的、特指的事物称作是对象,而则是对对象的一个抽象化是一个模子,确定对象的类型,确定对象将会拥有的特征(属性)和行为(方法)。
  类不占用内存,对象占用内存。

//类的声明
//访问参数+ class+ 类名 
//例如:
public class person  //声明一个person类
{
//字段、属性、方法
}

##2、类的实例化
   我们说类是一个抽象的概念,他拥有了对象的属性和方法,那么对象怎样才能使用这些属性和方法呢?这时候就涉及到了类的实例化,将类进行实例化之后,他的属性和方法才能引用到对象中。
  就像是盖房子,图纸就相当于类,而房子就是一个对象。我们想要使用房子的“入住”方法,或“人数”属性,就必须有一个实实在在的房子存在,而不是一个图纸,所以将图纸变为房子的过程就是一个实例化。

//类的实例化
//类名+ 实例名 =new  类名();
//例如:
person per = new person(); //实例化这个类					
 //类成员的访问(字段)
per._name = "张三";
per._age = 18;
per._gender = '男';
per.SayHello();
per.walk();
Console.WriteLine(per._name);
Console.ReadKey();

##3、类的成员访问
  字段、属性和方法都可以叫做类的成员,类被实例化之后,这些成员可以被对象访问,他们在定义时会有访问修饰符(public、private、protected、internal)用来定义访问的级别,有了访问的级别就可以控制成员在那些地方可以被访问,从而达到封装的目的。

	public——公共成员,完全公开,没有访问限制
	private——私有成员,在类的内部才可以被访问
	protected——保护成员,该类内部和继承类(子类) 中可以访问
	internal——当前程序集内可以访问,类的默认访问修饰符

  字段成员的访问修饰符一般为private,这样的话,在其他类中就没有办法对这个字段进行访问,但是可以通过属性来给字段赋值(属性的访问修饰符一般为public)。

属性:
属性的定义get(读)、set(写)
属性是为了保护与之对应的字段的,保证对字段的读取和赋值符合要求。
属性可以分为:读写、只读、只写。
允许外部访问的变量一定要声明属性。


public class person
{
	//字段		       
	private  string _name;
	//与之对应的属性
	public string Name
	{
		get { return _name; }//读
		set { _name = value; }//写
	}
}


##4、命名空间——类的调用
  在同一命名空间下,类与类之间可以相互调用,如果是在不同命名空间下的类的引用,可以通过代码调用实现衔接。

方法:
1、在本类下添加引用,用using导入需要使用的类所在的命名空间(项目名),之后调用类。
这里写图片描述
2、在本类下添加引用后,直接填写代码(写全名)
这里写图片描述
#二、方法

##1、什么是方法
   方法就是将一堆代码进行重用的一种机制,函数就是一段代码,这段代码可能有输入的值(参数),可能会有返回值。
  一个函数就像一个专门做一件事的人,我们调用它做一些事情,他可能需要我们提供一些数据给它,它执行完成后可能会有一些执行结果给我们。要求的数据就叫做参数,返回的执行结果就是返回值。

##2、语法
**位置:**方法一般是写在主函数的外面,类的里面。

语法:[访问修饰符] static 返回值 方法名([参数列表])
例:
Public static void show()
//此方法是无返回值无参数的方法(void 代表无返回值),如果方法前加static叫静态方法。在本类中调用这个方法,可以直接 类名.方法名+();就可以使用。例如类的名称为program,则可以写成program.show()。

##3、方法的重载
   方法是一个将函数进行重用的一种机制,实现特有的功能,但是当功能非常相似又很多时,我们就可以用方法的重载用来简化代码量。
  比如1+2是一个方法1+2+3也是一个方法,1-2是一个放法1-2.5也是一个方法,他们同是加法或同是减法,这样我们就可以写一个加法方法重载或减法方法重载,他们之间方法名相同,但参数个数或参数类型可以不同。

说明:
方法名相同,但参数不同或参数的个数不同,返回类型可相同也可不同。
方法的重载和返回值无关,和参数的类型和个数有关。

 //方法的重载
        public static int addnumber(int num1, int num2)
        {
            return num1 + num2;
        }
        public static double  addnumber(double num1, int num2)
        {
            return num1 + num2;
        }
        public static double addnumber(double  num1, double  num2)
        {
            return num1 + num2;
        }
        public static int addnumber(int num1, int num2,int num3)
        {
            return num1 + num2;
        }

##4、可变数组——params数组
   在定义方法时,我们需要在()中添加需要传入的参数,每个参数都需要为其定义数据类型,当传进来的是一个多种数据类型的数组时,即多个参数值,我们就可以使用params数组+object,来接收传入的内容,params是一个可变数组,可以让方法里面放很多很多参数,而object可以放不同的参数类型(它包含了所有数据类型)。
这里写图片描述

##5、构造函数
为甚么会出现?
1、在实例化类之后,当需要访问的属性较多时,直接赋值会很麻烦繁琐,构造函数可以让类在实例化是直接输入值,无需进行名称的赋值操作。
2、一般为了保护类中的属性,我们会将其属性变为只读的,从而使其无法在其他类中更改,保证了本身的安全性。构造函数就提供了这样一个功能,无法赋值,只能将值写出后,类进行读操作。

方法:

//构造函数,函数名是类名。需要实例化才能使用,实例化时括号里面需要有具体的参数值
public Person (string name,char gender,int age)		       
 {
	this._name = name;//this 是指示代词,将name这个参数赋值给name字段
	this._gender = gender;
	this._age = age;
 }

//实例化带有构造函数的类
person p=new person ("小颖",'女',18);

猜你喜欢

转载自blog.csdn.net/molihuakai_118/article/details/81836406