黑马程序员_关于对象和指向该对象的变量的有关问题
来源:互联网 发布:淘宝店招收藏店铺代码 编辑:程序博客网 时间:2024/05/20 15:09
----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
在学习C#面向对象基础视频的练习聊天机器人的部分的时候,老师介绍了一个变量指向有关对象的问题,现在我把这个问题总结一下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Robert r1 = new Robert();
r1.Name = "小I";
r1.Eat(5);
Robert r2=new Robert();
r2.Name = "小J";
r2.Eat(8);
Console.WriteLine("请选择机器人:1-小I,2-小J");
Robert r;
string str=Console.ReadLine();
if(str=="1")
{
r=r1; //r 指向r1指向的对象
}
else
{
r=r2;
}
while(true)
{
string str1= Console.ReadLine();
r.Speak(str1);
}
Console.ReadKey();
}
}
class Robert
{
public string Name { get; set; }
private int FullLevel { get; set; }
public void SayHello()
{
Console.WriteLine("我是{0}",Name);
}
public void Eat(int foodCount)
{
if(FullLevel>100)
{
return;
}
FullLevel = 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--;
}
}
}
注释的红字可以用一下来解释:
首先,这两句代码的含义如下图所示 Robert r1 = new Robert();
Robert r2 = new Robert();
Robert类型的变量r1指向Robert对象小I,Robert类型的变量r2指向Robert对象小J
那么这句代码的含义就很好解释了:r=r1; 见下图
Robert类型的变量r指向Robert对象小I,也可以说是指向了r1指向的对象。
----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net
- 黑马程序员_关于对象和指向该对象的变量的有关问题
- 黑马程序员_关于线程对象和目标对象的问题
- 黑马程序员_关于数组的排序和java对象
- 黑马程序员——面向对象_成员变量和局部变量的区别
- 黑马程序员_关于面向对象的个人理解
- 黑马程序员_关于对象的知识点补充
- 黑马程序员_类方法和对象方法的总结
- 黑马程序员_增强代码的复用性和匿名对象
- 指向对象的指针变量
- 黑马程序员_面向对象的应用
- 黑马程序员_面向对象的思想
- 黑马程序员_面对对象的思想
- 黑马程序员_面向对象的特性
- 黑马程序员_对象的序列化
- 黑马程序员_面对对象的理解
- 黑马程序员_对象的初始化过程
- 黑马程序员_对象流的使用
- 黑马程序员_面向对象的程序设计
- C#Winform限制Textbox只能输入数字
- cocos2d-x下硬件音量按键控制游戏音量的实现
- Cocoa2d 笔记
- 转的--关于作者对产品的一句话
- C++读写文件代码自动生成器(python3完成)
- 黑马程序员_关于对象和指向该对象的变量的有关问题
- 如何做好基层管理者(一)
- 在MFC中查找HWND
- Page.ClientScript.RegisterStartupScript和ScriptManager.RegisterStartupScript的区别
- PHP的SOAP工具包--nusoap
- 文本编辑和fckeditor切换使用时注意的问题
- 在mysql里存储汉字如较长的文章
- 面向对象设计模式与原则 .
- linux看门狗程序