1.类的定义
类:具有相同属性和方法的一组对象的集合
2.对象的定义
对象:对象是用来描述客观事物的一个实体。万物皆对象
人、教室、笔记本、空气
3.先来说一下类的属性和行为
属性相当于你是人你有名字有性别有年龄这种都可以称为属性 ,其他人也拥有这种属性
行为相当于你可以做某种事情比如你去游泳这是一种行为你去干饭这也是一种行为。
属性一般在类中用代码来理解就相当于写一个成员变量
成员变量是你类中定义出来的变量所以是成员变量,这个变量来源于你这个类。
也能去定义成员常量。
还有就是一般成员变量如果你不添加任何修饰符的情况下在类中它默认为private(私有的)(类中的一切都默认为私有因为是已经封装在类里面的东西你在外面就只能看到这个类名)举个例子:你是一个人你在外面你没有对外公布你的名字或者做出某种行为别人是不知道你到底是个什么样的人的他们唯一能知道的也就只是你是一个人而已。
也就是你当前类中成员类外访问不到你这个变量当然如果你把它修饰成public(公有的)它就能
在类外被你的类对象调用。
当然还有一种办法去将你定义的私有变量在类外进行调用,你需要去定义一个属性使用你这个变量
相似的名字相同的类型 然后用get 和set 获取到这个变量 set可以理解成设置这个变量等于这个属性 get可以理解成将这个公有的属性在外获得的值传递给这个私有变量 属性也就是这样 类似于一个空壳为变量做着事 抛头露面但是好处不是它的
属性的定义代码
int a;|| private int a;
public int A{
get{a=return;}
set{value=a;}
}
接下来是行为
行为在代码中也就是方法也可以说是函数
可以用来实现某种操作或者说出什么话
接下来我会将行为说为方法。
方法声明和成员变量区别还是有一些的
成员变量是 修饰符 数据类型 变量名来声明。
方法是 修饰符 返回类型 方法名 参数列表 和表达式来声明
public void A(){} 这是一个经典的无返回值无参方法。
public void B(int a){}这是一个无返回值带参的方法。
public int C(int a){ return a;}这是一个有返回值有参数的带参方法。
public int C(){ return 5;}这是一个有返回值无参数的无参方法。
接下来要讲的static关键字
static关键字也被称为静态关键字
一般用来声明静态变量和静态方法
静态变量和静态方法的用法
静态方法是专门为静态变量用的方法
静态变量可以在普通方法里面使用也可以在静态方法中使用。
静态变量是全局的变量生命周期覆盖当前类全局。
静态变量被赋值后就不会被修改了。
接下来讲this关键字
this关键字一般用来.你当前类的成员变量也就相当于.当前类的变量
后面还能被用来写索引器。
2.构造方法
这是一个颇为特殊的方法但它也是方法只是用类名写出来的方法它和其他方法一样
唯一的区别就是构造方法它没有返回值,当然写法也不一样。构造方法有无参构造
也有无参构造 类如果你不写无参构造方法它会默认为你添加一个无参构造方法
当然如果你写了带参构造方法你如果不声明一个无参构造方法就系统不会为你提供默认
无参构造方法。
(构造方法在后续被继承你需要用其他关键字才能成功的继承过来。)
3.方法重载
这个直接上列子
public void a(){}
public void a(int a){}
public void a(int a,int b){}
public void a(string a){}
这些都是方法的重载
方法重载就是修饰符相同返回值名字相同 但是参数列表不相同
4.局部变量和成员变量
string name ;//成员变量,系统默认提供一个值
void Print()
{
int age=20;//局部变量
Console.WriteLine(age);
Console.WriteLine(name);
}
作用域不同
局部变量的作用域仅限于定义它的方法
成员变量的作用域在整个类内部都是可见的
初始值不同
系统会给成员变量一个初始值
系统不会给局部变量赋予初始值
5.对象的引用
class Test14
{
int a = 1;
void Get()
{
Console.WriteLine(a);
}
void Get2(Test14 t)//第三种引用
{
t.a++;
}
Test14 Get3(Test14 t)//第四种引用
{
t.a++;
return t;
}
static void Main(string[] args)
{
Test14 t = new Test14();
t.a = 2;//第一种引用
Test14 t2 = t;//第二种引用
//Console.WriteLine(t.a+"t"+t2.a);// 2 2
//t2.Get();
//t.Get2(t);
//Console.WriteLine(t.a + "t" + t2.a);// 3 3
Test14 t3 = t.Get3(t);
t3.a++;
Console.WriteLine(t.a + "t" + t3.a);// 4 4
}
}



