gpt4 book ai didi

c# - 与 oops 概念相关

转载 作者:太空宇宙 更新时间:2023-11-03 17:51:50 26 4
gpt4 key购买 nike

我有一个非常基本的问题,甚至会惹恼你,但当 In 开始阅读 Visual c# 电子书时,我想到了这个问题。

他们提到过::
令人惊讶的是,Circle 类目前没有实际用途。默认情况下,当您将方法和数据封装在一个类中时,该类形成了与外部世界的边界。类中定义的字段(如radius)和方法(如Area)可以被类内的其他方法看到,但不能被外界看到——它们是类私有(private)的。因此,虽然您可以在程序中创建一个 Circle 对象,但您不能访问它的半径字段或调用它的 Area 方法,这就是为什么这个类没有多大用处的原因——但是!但是,您可以使用 public 修改字段或方法的定义

这是给定的Circle类

class Circle
{
int radius;

double Area()
{
return Math.PI * radius * radius;
}
}

因此,无法访问私有(private)字段,但是当我在控制台项目中尝试类似的操作时,我成功运行它。是不是我们在类中有 main 函数,这就是为什么我可以让 Program 类的对象访问我的私有(private)字段?
class Program 
{

int number;
static void Main(string[] args)
{
Program ObjProgram = new Program();
ObjProgram.number = 10;
Console.ReadLine();

}
}

最佳答案

您可以从同一个类中访问私有(private)字段——该类的任何实例都可以访问任何其他实例的私有(private)字段。

所以你可以创建一个 Program并从 Program.Main 中访问其私有(private)字段.

如果您从另一个类中的方法尝试它,它将无法正常工作。

class Program 
{
int number;

static void Main(string[] args)
{
Program ObjProgram = new Program();
ObjProgram.number = 10; // works fine
Console.ReadLine();
}
}

class SomeOtherClass
{
void SomeMethod()
{
Program program = new Program();
program.number = 10; // does not compile!
}
}

关于c# - 与 oops 概念相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23266198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com