m_<:这里记录C#学习的笔记,基础的语法略去,重点在类、方法、继承三项。
1 一个简单的类
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
person P1 = new person(); //类的实例
P1.Name = "Tom"; //字段赋值
P1.Age = 30;
P1.Height = 180;
P1.SayHello(); //调用方法
Console.ReadKey(); //读到键盘输入时结束
}
}
class person //新建一个类
{
public int Height; //类的字段(类似变量)
public int Age;
public string Name;
public void SayHello() //类的方法(类似函数)
{
Console.WriteLine("大家好,我叫{0},我的身高是{1}",this.Name,this.Height); //输出一行字符串
}
}
}
this的用法:
1
2 在类的方法中作为值类型,表示对调用该方法的对象的引用
3
4
2 类成员
字段、方法、属性都是类的成员,需要定义访问级别,字段尽量不用public。
public:公有成员,任何地方都可以访问
private:私有成员,只能由类成员访问(默认)
protected:保护成员
internal:内部成员
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
person P2 = new person();
//P2.Name = "Tom"; 无法直接设置Name字段
P2.GiveName("Tom"); //通过调用public的GiveName方法来设置Name字段
P2.Age = 30;
P2.Height = 180;
P2.SayHello();
Console.ReadKey();
}
}
class person
{
public int Height;
private string Name;
public void GiveName(string name) //类中成员可访问private型成员
{
if (name=="Jerry")
{
return;
}
this.Name = name;
}
public void SayHello()
{
Console.WriteLine("大家好,我叫{0},我的身高是{1}",this.Name,this.Height);
}
}
3 属性
为私有的字段配一个公有的属性,方便取值赋值。字段首字母小写,属性大写。
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
person P3 = new person();
P3.Age = 2; //赋值
P3.SayHello();
Console.ReadKey();
}
}
class person
{
public int height;
private int age; //字段age
public int Age //属性Age,属性没有存储功能,数据在age中
{
set
{
if (value<0) //属性可以控制非法值
{
return;
}
this.age = value;
}
get {return this.age;}
}
public void SayHello()
{
Console.WriteLine("大家好,我的年龄是{0}",this.age);
}
}
4 一个面向对象程序
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
robot r1 = new robot();
r1.Name = "小I";
r1.Eat(5);
r1.SayHello();
while (true)
{
string str = Console.ReadLine();
r1.Speak(str);
}
Console.ReadKey();
}
}
class robot
{
public string Name { get; set; } //简化,机器人名字
private int FullLevel { get; set;} //等级
public void SayHello()
{
Console.WriteLine("我叫{0}!",Name); //this.Name亦可
}
public void Eat(int foodCount) //喂食
{
if (FullLevel > 100)
{
return;
}
FullLevel += foodCount;
}
public void Speak(string str) //问答
{
if (FullLevel<=0)
{
Console.WriteLine("说不了,饿死了!");
return;
}
if (str.Contains("姓名")||str.Contains("名字"))
{
this.SayHello(); //类的方法调用另一个方法
}
else if (str.Contains("女朋友"))
{
Console.WriteLine("年龄小,不考虑。");
}
else
{
Console.WriteLine("听不懂...");
}
FullLevel--;
}
}
网友评论