一.什么是面向对象对象?
使用面向对象编程为了让结构更加清晰,把程序中的每个功能进行模块化划分,每个模块都提供特定的功能,而且每个模块都是独立的,这种模块化特征提供了非常大的多样性,大大增加代码的重用性. 简单来说面向对象编程就是模块化编程 ,对程序中的变量结构划分 ,让程序更加清晰。
二.为什么不直接给变量赋值?不直接定义方法?
因为既然是设计模块化的类,就是为了让在这个类能够经常的用,减少工作的重复性劳动,举个例子,你想要求得数组从小到大的排序,是否每次都要用到冒泡排序或者其它的算法处理这种事情,会很麻烦,但是有一个类 Array 这个类,这个是c#自己定义的类,用Array.Sort(Array)就可以处理这个问题,其它相同的问题类似,定义一个类,类中定义字段,属性,方法,无论传进来的数组长度如何,大小如何,只要参数以及方法找的对,就能一行代码解决一个问题。
因此,在编程中,当我们遇到问题时,也可以自己定义一个类去完成程序集需要的功能。
三.创建类时,第一步首先考虑的是类的封装,也就是类的访问权限,默认情况是internal,类中的属性默认是private。
public:所有对象都可以访问;
private:对象本身在对象内部可以访问;
protected:只有该类对象及其子类对象可以访问
internal:同一个程序集的对象可以访问;
protected internal:访问限于当前程序集或派生自包含类的类型。
四.创建类,id是public权限,内部外部都可以访问,而name则是默认的private,只能在Class2中访问。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 类的练习
{
internal class student1
{
public int id;
string name{ get; set; }
public void Setid(int id)
{
this.id = id;
}
public int Getid()
{
return id;
}
}
}
五.如何访问类,并且调用类中的方法和属性,则需要new对象了,此时student1就是new的对象,这一过程也叫实例化,可以通过student1.方法名,student1.属性,调用方法,属性,student1()为方法中的构造函数。
student1 student1 = new student1();
六.构造函数的定义是在new一个对象时,自动调用改方法,构造函没有返回类型在C#中,包括void
。构造函数的目的是初始化对象,当创建类的实例时自动调用
public class MyClass
{
public int Number { get; set; }
// 构造函数
public MyClass(int number)
{
Number = number;
}
}
在这个例子中,MyClass类有一个构造函数,它接受一个int类型的
参数number,并将其赋值给类的Number属性。这个构造函数没有返
回类型它仅仅初始化MyClass的实例。
七.构造函数的理解
Student student= new Student(16,"王五");
上述代码表明构造函数也可以重载。
通过构造函数重载 调用了类中的带有两个参数的构造函数
是通过构造函数重载来实现的
3个条件1.参数个数不同 2.参数类型不同3.参数类型顺序不同 实现重载
根据实例化时传递不同个数不同类型不同顺序的实参 嗲用对应的构造函数