标签: access-modifiers

使用 ReflectionClass 获取运行时属性

所以我正在探索Reflection类的使用。我注意到一些事情。即使在 Origin 类中,也必须先设置属性的可访问性,然后才能使用属性的值或名称。

我想知道是否可以通过ReflectionClass. 例如

class MyClass
{
    public $bathroom = 'Dirty';
    protected $individual = 'President';
    private $conversation = '****************';

    function outputReflectedPublic()
    {
        $reflection = new ReflectionClass($this);
        $props = $reflection->getProperties(ReflectionProperty::IS_PUBLIC);
        foreach($props as $prop)
            echo $prop->getName() . ' : ' . $prop->getValue($this);
    }
}

$obj = new MyClass();
$obj->outputReflectedPublic();//bathroom : Dirty
//now we add a new property
$obj->$ect = 'ify';
$obj->outputReflectedPublic();//bathroom : Dirty  //same as before
Run Code Online (Sandbox Code Playgroud)

现在我对此并不感到太惊讶。我试图查看该属性是否作为受保护/私有/静态位于实例中ReflectionProperty::IS_PRIVATE,并带有 ,ReflectionProperty::IS_PROTECTEDReflectionProperty::IS_STATIC

我还用来$prop->setAccessible(true)防止无法访问的错误。我无法看到该$ect …

php properties class object access-modifiers

1
推荐指数
1
解决办法
636
查看次数

我可以在公共方法中声明私有变量吗?

这个问题是我在一次采访中被问到的。

我们可以在公共方法中声明私有变量吗?
如果可以的话,我们可以通过public方法访问变量吗?

我尝试使用java,但它不允许在方法内定义私有变量,为什么呢?

public class GetUser {

public String getUserName(){

    private String user="David"; 

return user;

}}
Run Code Online (Sandbox Code Playgroud)

java oop access-modifiers

1
推荐指数
1
解决办法
7545
查看次数

C#:为什么我必须在类的变量中使用公共访问修饰符?

好吧,我初学者,所以..是的,这可能是一个非常愚蠢的问题.我读到如果我声明变量或对象,而不提及access-modifier(public,private等),而不是自动使其具有Internal acess修饰符(并且它将存在于当前命名空间中的任何位置).

那么为什么我需要在类中将我的变量设置为Public以将它们放在另一个类中(例如我的程序类).

c# oop class public access-modifiers

0
推荐指数
1
解决办法
204
查看次数

为什么Java中不允许使用较弱的重写函数?

我有以下代码:

public class Library {

    public void myFunction() {
        // do something
    }
}
public class Book extends Library{

    protected void myFunction() { // Error here
        // do something
    }

}
Run Code Online (Sandbox Code Playgroud)

上面的代码有错误,因为Book类试图用较弱的访问修饰符覆盖supper类的函数.我知道这是Java的规则.但我很好奇为什么会这样?它可能导致什么问题?

java access-modifiers

0
推荐指数
1
解决办法
515
查看次数

Java访问修饰符的可访问性范围

Java具有私有,受保护和公共访问修饰符.你能解释一下这些修饰语的可访问性范围吗?

如何在不同的包中访问受保护的成员?

java access-modifiers

0
推荐指数
1
解决办法
4229
查看次数

由于其保护级别,构造器无法访问

我的错误是:

错误1'aCI.CheckTexture.CheckTexture()'由于其保护级别而无法访问

我用这段代码检查一些文件MD5/Hash:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace aCI
{
class CheckTexture
{   
    Thread Search;
    protected CheckTexture()
    {
        Search = new Thread(Scan);
        Search.Start();
    }

    protected void Scan()
    {
        if (GetMD5Hash("1.rar") != "9647997C556C5A37A63EFAFBCA4A40D0"
           || GetMD5Hash("2.rar") != "6626959A9099B4C6F5C755E0D2E57EF8"
           || GetMD5Hash("3.rar") != "4D6611A825F81024E0153E2753B8A27E")
        {
            System.Windows.Forms.MessageBox.Show(
            "Sorry come back and restor your orginal files.",
            "Error",
            System.Windows.Forms.MessageBoxButtons.OK,
            System.Windows.Forms.MessageBoxIcon.Error);
            return;
        }
    }

    #region Hash Calculator

    private static byte[] ConvertStringToByteArray(string data)
    {
        return (new System.Text.UnicodeEncoding()).GetBytes(data);
    }

    private static System.IO.FileStream GetFileStream(string pathName) …
Run Code Online (Sandbox Code Playgroud)

c# access-modifiers

0
推荐指数
2
解决办法
3408
查看次数

Java类的可接受修饰符

我最近参加了编程测验并错过了以下问题:

Which of the following are not allowable modifiers for a class?
Choose at least one answer.
    A. public   
    B. private  
    C. protected    
    D. abstract 
    E. final    
    F. static  
Run Code Online (Sandbox Code Playgroud)

我选择了受保护和静态,并将问题误认为是半信用.该课程是在线的,我的导师没有回复我这个问题,所以我想知道正确的答案是什么.

java class access-modifiers

0
推荐指数
1
解决办法
654
查看次数

可访问性错误不一致:参数比方法更难访问

我有一个不一致的问题,我正在创建一个Csharp更新程序,我有一个非常奇怪的时间与一行代码生成此错误:

错误代码1 - 不一致的可访问性:参数类型'ModBoxUpdate.ModBoxUpdateXml'不如方法ModBoxUpdate.ModBoxUpdateInfoForm.ModBoxUpdateInfoForm(ModBoxUpdate.IModBoxUpdatable,ModBoxUpdate.ModBoxUpdateXml)'可访问

这是我遇到问题的代码 - ModBoxUpdateInfo.cs

using System;
using System.Windows.Forms;

namespace ModBoxUpdate
{
    public partial class ModBoxUpdateInfoForm : Form
    {
                  //This one here//
        public  ModBoxUpdateInfoForm(IModBoxUpdatable applicationInfo, 
        ModBoxUpdateXml updateInfo)
        {
            InitializeComponent();
            if (applicationInfo.ApplicationIcon != null)
                this.Icon = applicationInfo.ApplicationIcon;


        }

    }
}
Run Code Online (Sandbox Code Playgroud)

ModBoxAccept.cs

using System;
using System.Windows.Forms;

namespace ModBoxUpdate
{
    internal partial class ModBoxAcceptForm : Form
    {
        private IModBoxUpdatable applicationInfo;

        private ModBoxUpdateXml updateInfo;

        private ModBoxUpdateInfoForm ModBoxUpdateInfo;
        public ModBoxAcceptForm(IModBoxUpdatable  
        applicationInfo, ModBoxUpdateXml updateInfo)
        {
            InitializeComponent();

            this.applicationInfo = applicationInfo;
            this.updateInfo = updateInfo;

            this.Text = …
Run Code Online (Sandbox Code Playgroud)

.net c# access-modifiers

0
推荐指数
1
解决办法
1915
查看次数

最终不能公开静态

我确信这是一个非常简单的解释,它会让我感到愚蠢,但我无法弄清楚. 第18行的Pastebin:

public static boolean loadTextures() {
    try {
        final Texture STONE = loadPNG("main\\textures\\stone.png"); // This line here I can't do public static final...         
    } catch (IOException e) {
         return false;
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

我想STONE成为public static final,但是eclipse说只是final一个合法的修饰语.我如何宣布public static final变量?

java access-modifiers

0
推荐指数
1
解决办法
95
查看次数

无法将受保护的枚举作为静态方法的参数传递

我一直在更新公司的软件,偶然发现了这个问题.这个枚举是受保护的,我想从枚举中传递一个值作为静态方法的参数,但我不能导致我无法访问它,即使方法和枚举都在同一个类中.

例:

Class SomeClass
{    
    protected enum Car
    {
        Id
    };

    public static void AMethod(Car enumValue)
    {
        MessageBox.Show("This is an enum:" + enumValue.ToString());
    }  
}
Run Code Online (Sandbox Code Playgroud)

我不能使用它Car enumValue作为参数AMethod因为我无法访问它.为什么我不能这样做?我的意思是他们在同一个班级.我错过了什么吗?

c# access-modifiers class-visibility

0
推荐指数
1
解决办法
588
查看次数

标签 统计

access-modifiers ×10

java ×5

c# ×4

class ×3

oop ×2

.net ×1

class-visibility ×1

object ×1

php ×1

properties ×1

public ×1