c# 私有字段和公共成员入门

C# 私有字段与公共成员详解

定义了一个 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}");  // 正确的秘密
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值