首页 > TAG信息列表 > access-modifiers
java-何时应将构造方法声明为public,何时应将其构造为包私有的?
在Java中,我有时看到构造函数声明为“ public”,有时却没有访问修饰符,这意味着它是程序包私有的.在什么情况下我必须使用“ over over”,反之亦然?解决方法:问题包含答案.如果允许包外部的客户端代码实例化对象,则使构造函数公开.如果您不希望这样做(因为对象是特定于包的,或者对象c#-是否有可能每次在公共字段块中的某个字段之前都不写“ public”?
我的课程涉及很多领域,其中大约一半是公开的.现在看起来像这样: public int someint1, someint2, someint3; public string str1, str2; public bool[] boolArray; public List<string> listOfStrings; …等等.在那之后还有一些私有领域. 是否可以为所有这些公共领域只写一次公共有什么与访问修饰符等效的东西,它可以使用C#将访问限制为仅一个线程?
基本上,我很好奇是否会发生以下情况. class MyClass { public void MyMethod() { } public void MyNonThreadMethod() { } } public void OtherThread(MyClass myObject) { Thread thread = new Thread(myObject.MyMethod); thread.Start(); // works threjava-默认访问类中的公共访问方法..有什么意义?
如果您对一个类进行默认访问,并将该类中包含的方法标记为公共,那意味着什么?换句话说,如果封闭类不能被公共访问,您如何对方法进行公共访问?解决方法:在某些情况下,例如当您的具有默认访问权限的类实现公共接口时,可能需要使方法保持公共状态. 当您根据接口定义API时,这很有用,并且您界面访问修饰符困境
在我的C#程序中,我有几个自己的接口,希望将它们保留在程序集内部. internal interface Doable { void DoSomething (); } internal interface Informable { void SomethingHappened (Doable obj); } 而且我还有一个抽象类,它不能是内部的,并且像这样抽象地实现了两个接java-为什么子类的方法更易于访问?
一个简单的例子 class A { protected int foo(int x){ return x; } } class B extends A { public int foo(int x){ return x*x; } } Java允许这样做,并且没有任何问题.但是,假设您在另一个包中声明 A b = new B(); int z = b.foo(5); 然java中的内部等价物
什么相当于Java中C#方法中可用的内部访问修饰符? (我知道默认即方法,没有任何范围的变量都有包访问权限,但我正在寻找等价的关键字) 我们如何在Java中实现具有受保护内部作用域的方法?解决方法:Java中没有等效的程序集,因此不能使用等效的访问修饰符来使成员在程序集中可用. 最接近内java – 帮助理解受保护方法的问题
我正在阅读Sybex Complete Java 2认证学习指南2005年4月(ISBN0782144195).本书适用于想要通过java认证的java开发人员. 在关于访问修饰符(以及其他修饰符)的章节之后,我发现了以下问题(#17): True or false: If class Y extends class X, the two classes are in different pc – 删除复制和复制 – 公共,私人或受保护?
为了使对象不可复制,我们可以显式删除其copy-constructor和copy-assignment操作符. 我的问题是:在这个类的公共,私人或受保护的部分,正确的地方是什么?而且 – 这个选择有什么不同吗?解决方法: what is the right place to do it – in the public, private or protected section ofjava – 超类中的受保护方法在不同包中的子类中是否可见?
参见英文答案 > What is the difference between public, protected, package-private and private in Java? 25个 这看起来很傻,但我真的很困惑.请看下面的代码: package com.one; public class SuperClaVisual Studio 2010中的C访问修饰符自动缩进慢慢让我发疯 – 可以改变吗?
在Visual Studio中编写C语言时,它坚持在访问修饰符上给我这些可怕的缩进 – 如果有人真的喜欢这种方式,我表示哀悼;)(一个笑话人!) public class MyClass { public: MyClass(); ~MyClass(); int wowAnInt(); } 不用说,我想要这个: public class MyClass { public:Java中的public,protected,package-private和private有什么区别?
在Java中,是否有明确规定何时使用每个访问修饰符,即默认(包私有),public,protected和private,同时创建类和接口以及处理继承?解决方法:The official tutorial可能对你有用. ______________________________________________________________ | │ Class │ Package │ SC:有没有办法限制某些类访问某些类而不暴露其他私有成员?
我有一个带有受保护方法Zig :: punt()的类,我只希望它可以被“Avocado”类访问.在C中,您通常使用“朋友鳄梨”说明符来执行此操作,但这将导致“Avocado”类可以访问所有其他变量;我不希望这样,因为这打破了封装. 是我想要的不可能,还是已经存在一个不起眼的技巧,我可以用来实现我想允许特定类的实例只由Java中的另一个类创建?
假设我有两个A和B类,我想做它,这样B的实例只能在A和B本身中创建.我不希望允许任何其他类(包括A的子类)创建B的实例.有没有办法在Java中执行此操作? 如果我不清楚我想要做什么,这里有一些代码: public class A { B instance; public A(){ // Still allows for subclaJava的默认访问修饰符曾经是公开的
早在2004年,当我在RIT参加CS课程的介绍时,我的教授非常强调我们记得放入访问修饰语.没有它,默认访问将是公开的,我记得教授说的.也许我的记忆是错的,教授实际上并没有说出来,但显然现在情况并非如此.我想知道在某些时候是否曾经是这种情况,也许Sun在2004年之后的某些时候改变了它?解java – 有人可以告诉我一个使用public作为访问修饰符会“错误”的情况,然后对每个修饰符做同样的事情吗?
我一直试图在java中学习更多关于访问修饰符的知识,并且每个人都说“使用私有来隐藏你不想要其他类/方法使用的东西”,我只是想知道为什么需要这样做.我想不出一个单独的案例,私人有意义作为唯一的开发人员使用… 该问题延伸到也没有提到访问说明符.它似乎只是限制了信息流,因为用户java – 从静态上下文访问非静态方法
我对此感到有点困惑,而我在这里浏览建议的答案并没有产生在我的上下文中起作用的直接结果. 我的问题是基本的.让我们假设我有一个像这样的方法. private int someFunction(int x, int y){ return (x+y+5) } 但是我想从main调用这个函数(public static void main(String argsjava – 对getter和setter使用’final’修饰符是个好主意吗?
我想知道为什么最终修饰符不与getter和setter一起使用? 为什么这样: private int x; public void setX(int x) { if(x >= 1) throw new IllegalArgumentException("X must be lower than 1"); this.x = x; } 而不是这个: private int x; public final void setX(int x) {java – 关于访问说明符
我定义了一个Class Base class Base { private int i; Base(int i) { this.i = i; } } 因此Base类的对象可以访问私有变量. class BaseDemo { public static void main(String[] args) { Base objc# – 无法访问派生类中的受保护方法
我不明白为什么这段代码会给我一个Intellisense错误. public abstract class Node { protected abstract string ToText(); } public class HtmlNode : Node { public List<Node> ChildNodes { get; set; } protected override string ToText() { StrinJava公共/私有和静态修饰符如何影响在一行上声明的多个变量?
以下是等效的吗? private static boolean readAllFiles = false,readAllDirs = false; private static boolean readAllFiles = false; private static boolean readAllDirs = false; 如果是这样,他们是否仍然拥有不同值的相同修饰符? private static boolean readAllFiles = falc# – 如果我声明一个内部类,内部成员的默认访问级别是什么?
我正在构建一个具有一些基本功能的DLL.长话短说,我正在制作一些静态类供开发者使用.这些类使用其他一些做脏工作的类,我将其标记为内部,因为我不希望人们访问它们. 问题是:如果我将一个类声明为内部类,那么其成员的访问级别是什么? 我必须将其所有成员标记为内部,否则它们会自动标记java – 为什么clone可以在另一个对象上设置私有字段?
我正在学习Java,我正在阅读的书中有关于克隆的以下示例.在clone()中,我的第一个实例能够在新对象上设置缓冲区,即使缓冲区是私有的.看起来它应该要求保护字段以使其工作. 为什么允许这样做? clone()是否具有允许其访问私有字段的特殊权限? public class IntegerStack implements Cloc# – 对不同类的不同访问属性
我有一个基(抽象)类Component.我想控制对派生类的属性的访问,以便每个人都获得读访问权限,但只有某些类允许写访问权限. 那些’某些类’当前是实现抽象基类MessageHandler< TMessage>的任何东西.理想情况下,我也喜欢实现IMessageHandler的类能够访问,但我认为这使得要求更加困难.我们的C#班级成员是多么“私密”?
参见英文答案 > Does reflection breaks the idea of private methods, because private methods can be access outside of the class? 14个 我们可以使用反射来获取或设置C#类中任何私有成员的值. (使用