学习目标:
1、对象与类的概念
2、类的组成
3、字段、属性、方法
4、属性扩展
学习内容:
1.1 对象与类的概念:
类就是以对象共有的属性,方法来定义的一个整体,也就是一类,比如一张个人信息表,里面包含了一个人的姓名,性别等一系列社会角色,这个就是人的一个类,而当这张表被不同的人将信息填充之后,这时候填完的表就是利用这个相同的类,创建了不同的对象。
2.1类的组成
修饰符+class+类名
{
//字段
//属性
//方法
}
一个类中可以只有属性,只有方法,但是只有字段很少用,字段就是一个成员变量,是在类的内部使用的。
3.1字段概念:字段,又叫成员变量,是在类的内部进行使用的,一般用private修饰,不会用public来修饰字段。
3.2属性:对外提供数据接口,和字段的区别,强调对外使用,使用public 修饰,很少使用private来修饰。
3.3方法:方法是执行相关的业务逻辑,属于动态行为。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Fish.ClassAndObject
{/// <summary>
/// 这个是一个类的组成
/// </summary>
public class Equipment
{
//【字段】强调在类的内部使用
private int name;
//【属性】对外提供数据的接口
public int EquipmentId { get; set; }//设备Id
public string EquipmentName { get; set; }//设备名称
public double Pressure { get; set; }//采集的压力
//【方法】//动态行为,执行相关业务逻辑
public void ShouInfo()
{
Console.WriteLine($"设备ID:{EquipmentId } 设备名称:{EquipmentName }" +
$"压力值:{Pressure }");
}
}
}
4.1属性本质
下面代码解剖中属性 EquipmentId
属性public int EquipId { get; set; }
各自对应一个get和set方法,同时增加了一个隐藏字段。
隐藏字段干什么?其实当调用set方法的时候,是把外面的数据给了对应的隐藏字段来保存。
当调用get方法的时候,其实是从隐藏字段中把数据读取出来。
4.2属性拓展问题
属性中的get();set();方法是可以去掉任意一个的,去掉就是只写或者只读属性,在只读属性中,是没有私有字段的,虽然没有了私有字段,但是使用方法是无法代替属性的,属性表示的是一个静态特征,而方法是动态的行为,所以无法使用方法代替只读属性,同样,字段也是无法替代属性的,属性是对外提供数据的接口,强调对外使用,而字段则是成员变量,强调在类的内部使用。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Fish.ClassAndObject
{
public class Equipment2
{
private int equipmentId;//get和set方法的私有字段
public int EquipmentId
{
get { return equipmentId; }
set {
if(value <100)
{
equipmentId = 100;
}
else
{
equipmentId = value;
}
}
}//设备Id
//***************************************************************************************
public string EquipmentName { get; } = "压力传感器";//设备名称--》只读属性
public double Pressure
{
get
{
double result = 3.5;
return result;
}
}//采集的压力
//**************************************************************************************
public void ShouInfo()
{
Console.WriteLine($"设备ID:{EquipmentId } 设备名称:{EquipmentName }" +
$"压力值:{Pressure }");
}
}
}
4.3在Winfrom控件中,字段是无法解析的。也就是无法绑定对应的数据。
三个设备属性,当其中一项改为字段时,数据绑定失败,这个属性则不会显示。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FromEquipment
{
public class Equipment
{
public int EquipmentId { get; set; }//设备Id
***********************************************************
//【属性没有改变为字段时运行程序】
public string EquipmentName{ get; set; }//设备名称
*************************************************************
public double Pressure { get; set; }//采集的压力
public void ShouInfo()
{
Console.WriteLine($"设备ID:{EquipmentId } 设备名称:{EquipmentName }" +
$"压力值:{Pressure }");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FromEquipment
{
public class Equipment
{
public int EquipmentId { get; set; }//设备Id
***************************************************************
* *
* //【将属性改为字段时运行程序】 *
*
* public string EquipmentName;//{ get; set; }//设备名称 *
***************************************************************
public double Pressure { get; set; }//采集的压力
public void ShouInfo()
{
Console.WriteLine($"设备ID:{EquipmentId } 设备名称:{EquipmentName }" +
$"压力值:{Pressure }");
}
}
学习时间:
每周一、周三晚上
学习产出:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)