定义了一个 Person 类,实现了对个人信息的封装、操作和验证功能,主要包含以下核心部分:
Person 类(核心业务类)
- 私有字段:
_Name:存储姓名的核心数据(通过Name属性间接访问)secret:存储私密信息(仅内部访问)loginCount:记录登录次数(仅内部修改)
- 公共成员:
Name属性:通过get/set访问器封装_Name字段,提供安全的读写操作Age字段:直接公开的年龄信息- 构造函数:初始化姓名、年龄、秘密信息和登录次数
- 方法:
- 公共方法:
SayHello()(打招呼并更新登录次数)、ShowCurrentName()(显示当前姓名)、ShowLoginCount()(显示登录次数)、VerifySecret()(验证秘密) - 私有方法:
UpdateLoginCount()(内部更新登录次数)、CheckSecret()(内部验证秘密)
- 公共方法:
2. Program 类(程序入口)
Main方法是程序的入口点,主要功能:- 创建
Person实例并初始化信息 - 调用对象方法展示基本功能
- 修改姓名并验证修改效果
- 验证秘密信息的正确性
- 创建
using System;
public class Person
{
// 私有字段:存储姓名(通过Name属性访问和修改)
private string _Name;
// 公共属性:带有get和set访问器,操作私有字段_Name
public string Name
{
get { return _Name; } // 返回私有字段的值
set { _Name = value; } // 设置私有字段的值
}
public int Age;
private string secret;
private int loginCount;
// 构造函数
public Person(string name, int age, string secret)
{
_Name = name; // 初始化姓名存入私有字段
Age = age;
this.secret = secret;
loginCount = 0;
}
// 公共方法:打招呼
public void SayHello()
{
Console.WriteLine($"Hello, my name is {Name}, I'm {Age} years old.");
UpdateLoginCount();
}
// 公共方法:显示当前姓名(与Name属性值一致)
public void ShowCurrentName()
{
Console.WriteLine($"Current name: {_Name}");
}
// 公共方法:查看登录次数
public void ShowLoginCount()
{
Console.WriteLine($"{Name} has logged in {loginCount} times.");
}
// 私有方法:更新登录次数
private void UpdateLoginCount()
{
loginCount++;
}
// 私有方法:检查秘密
private bool CheckSecret(string input)
{
return input == secret;
}
// 公共方法:验证秘密
public bool VerifySecret(string input)
{
return CheckSecret(input);
}
}
class Program
{
static void Main(string[] args)
{
Person person = new Person("Charlie", 35, "mysecret123");
person.SayHello(); // 使用初始Name值
person.ShowCurrentName(); // 显示当前姓名
// 通过Name属性修改姓名
person.Name = "Charles";
Console.WriteLine("\nAfter changing name via Name property:");
person.SayHello(); // 使用修改后的Name值
person.ShowCurrentName(); // 显示修改后的姓名
person.ShowLoginCount();
// 新增:验证秘密
Console.WriteLine("\nVerifying secret:");
bool isCorrect1 = person.VerifySecret("wrongsecret");
Console.WriteLine($"Trying 'wrongsecret': {isCorrect1}"); // 错误的秘密
bool isCorrect2 = person.VerifySecret("mysecret123");
Console.WriteLine($"Trying 'mysecret123': {isCorrect2}"); // 正确的秘密
}
}
C# 私有字段与公共成员详解
3万+

被折叠的 条评论
为什么被折叠?



