面向对象
把具有相同属性与行为的实例抽象成一个类,这就是面向对象。
例如:
· 对人类的属性与行为进行抽象,
属性:姓名,身高,体重,年龄,爱好等。
行为:睡觉,吃饭,跑步,跳跃等。
class person{
// 变量
string name; // 姓名
int age; // 年龄
float height; // 身高
float weight; // 体重
string[] interest; // 爱好
// 行为
void eat()
{
// 吃饭
}
void sleep()
{
// 睡觉
}
void run()
{
// 跑步
}
void jump()
{
// 跳跃
}
}
权限修饰符
public 公共的,所有对象都可以访问
private 私有的,对象本身内部可以访问
protected 被保护的,该类与子类对象可以访问
internal 内部的,同一个程序集中的对象可以访问
注:
1.在类的定义中不加修饰符时,默认为private(私有的)。
2.所以在类的定义中记得添加修饰符。
类的实例化
注:
1.在实例化的过程中,有可能会将类中的变量赋上错误的值或是不小心误改了值;所以建议把变量的权限设为私有(私有的变量首字母建议小写,便与区分)
2.设为私有后应当写一个set()与get()的方法,用于调用该变量。
class person{
// 变量
private string name;
private int age;
public float Height;
public float Weight;
public string[] Interest;
public void SetName(string name) //给姓名赋值
{
this.name = name ;
}
public GetName() //获取姓名
{
return this.name;
}
public SetAge(int value) //给年龄赋值
{
// 防止年龄超过一定范围
if(value > 120)
{
value = 120 ;
}
if( value < 0)
{
value = 0 ;
}
age = value ;
}
public int GetAge() //获取年龄
{
return this.age;
}
实例化的过程
//在方法中
person luren = new person();
luren.SetName("路人");
luren.SetAge(20);
luren.Interset = new string[]{ " 恰" ,“ 耍” , "碎觉" };
属性
C#中提供了一种更简便的方法,用于赋值,那就是属性。
class person{
// 变量
private string name;
private int age;
public float Height;
public float Weight;
public string[] Interest;
//属性
publid string Name { set ; get; } //这是属性的默认格式的写法,它的默认格式就是没有(if)判断语句的Age属性
public int Age
{
set
{
if(value > 120)
{
value = 120 ;
}
if( value < 0)
{
value = 0 ;
}
age = value; //value 就是外界传进来的值
}
get
{
return age;
}
}
}
使用属性的实例化
//在方法中
person luren = new person();
luren.Name = "路人"; // 当属性在等号左侧是使用的是set方法,而等号右侧的便是传入内部的值。
luren.Age = 20;
luren.Interset = new string[]{ " 恰" ,“ 耍” , "碎觉" };
Console.WriteLine("姓名" + luren.Name); //此时调用get方法,输出值。
Consloe.WriteLine("年龄" + luren.Age);
Console.Read();
构造方法
用于初始化类的方法,且该方法与类同名。在实例化类的同时调用了该方法。
例:
class person{
// 变量
private string name;
private int age;
public float Height;
public float Weight;
public string[] Interest;
private string status; // 生命状态
//构造方法
public person ()
{
name = "无名氏";
age = 0;
status = "有生命" ;
}
}
析构方法
在实例化的对象被销毁时,调用该方法。该方法没有权限修饰符,因为不需要被外界调用。需要用到’~'符号。
例:
class person{
// 变量
private string name;
private int age;
public float Height;
public float Weight;
public string[] Interest;
//析构方法
~person ()
{
status = “已死亡” ;
}
}
注:
- 对象在没有变量代表时,就会没C#的垃圾内存回收方法个销毁(当变量luren = null;时原来名字为路人的对象可以被销毁)。
- C#的垃圾内存回收方法是每隔一段时间才会执行一次。
- 可用GC.Collect()强制执行垃圾内存回收方法。
静态修饰符
'static’是静态修饰符。被它修饰的变量与方法被称为静态变量/方法。静态变量/方法是可以直接用类名调用的。
例:
person类
class person{
// 变量
public string name;
public int age;
public float Height;
public float Weight;
public static bool status; //静态变量status用于判断人类的状态(true:有生命;false:已死亡;)
public static void sleep()
{
// 静态方法sleep()
}
public void eat()
{
// 一般方法
}
}
调用时
//在方法中
person luren = new person();
//一般变量与方法的用法
luren.name = "路人" ;
luren.age = 20 ;
luren.eat();
//静态变量的用法
person.status = true ;
person.sleep() ;