有没有办法知道对象内部方法的类型(对不起,如果这不是正确的名称)?想象一下,你有一个有5种方法的对象,其中3种是公共的,剩下的是受保护/私有的,你怎么知道方法是否公开?
干杯!
我有一个类 A,我需要从中访问类 B 的受保护成员,其方式与在 C++ 中使用朋友关键字的方式相同。但是,内部修饰符不适合我的需要。B 类将需要创建 A 类的实例,修改其私有数据,并返回对该类的引用。这些 A 类成员需要对原始调用者保持私有。
public class A
{
protected int x;
}
public class B
{
public static A CreateClassA()
{
A x = new A();
x.x = 5; // ERROR : No privilege
return x;
}
}
Run Code Online (Sandbox Code Playgroud) 根据第二个文档表(http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html),没有标识符的成员对子类不可见.
但是,当我运行以下示例代码时,会打印"1"(b的内容)!
class Class1{
private int a=0;
int b=1;
protected int c=2;
public int d=3;
}
class Class2 extends Class1{ }
public class HelloWorld{
public static void main(String []args){
Class2 klass=new Class2();
System.out.println(klass.b);
}
}
Run Code Online (Sandbox Code Playgroud)
如果无法从子类访问没有访问修饰符的成员,为什么在此示例中打印它?
它应该抛出一个错误,就像私有访问修饰符一样,不应该吗?
仅仅为了举例,我写了这样的:
public class MyClass
{
private int MyMethod()
{
return 1;
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法使用Reflection或其他东西将MyClass::MyMethod()运行时的访问修饰符更改为public然后调用它?
Foo 类如下所示,
package com.package1;
import com.package2.Nee;
/**
*
* @author Dilukshan Mahendra
*/
public class Foo extends Nee{
public static void main(String[] args) {
Nee mynee = new Nee();
/* mynee.sayProtected(); This gives me a compile error,
sayProtected() has protected
access in com.package2.Nee
*/
}
}
Run Code Online (Sandbox Code Playgroud)
Nee 类如下所示,
package com.package2;
/**
*
* @author Dilukshan Mahendra
*/
public class Nee {
protected …Run Code Online (Sandbox Code Playgroud) 我无法在循环中修改 numpy 数组的实际值。我的代码如下:
labels_class = np.copy(labels_train)
for label in labels_class:
labels_class[label] = 1 if (label == classifier) else 0
Run Code Online (Sandbox Code Playgroud)
labels_class- 只是一个大小为 N 且值为 [0, 39] 的 numpy 数组。的值labels_class[label]在循环中是正确的(==修改),但在循环外labels_class保持不变。
我也试过nditer,没用:
for label in np.nditer(labels_class, op_flags=['readwrite']):
label = 1 if (label == classifier) else 0
Run Code Online (Sandbox Code Playgroud)
在参考资料中,说“要实际修改数组的元素,x 应该用省略号索引”
我怎么做?语法是什么?
我知道不同访问修饰符之间的区别以及何时使用它们,但我不知道为什么。我知道它简化了项目,但还有其他用途,例如安全性吗?
例如,以下代码是否正确?
private LinearLayout layout1;
private LinearLayout layout2;
private LinearLayout layout3;
Run Code Online (Sandbox Code Playgroud) 我是kotlin的新手我最近在kotlin学习了继承,然后我意识到我们不能将类的可见性标记为"受保护".如果我错了,请纠正我,还是有其他办法让班级得到保护?
我在函数的前面放了什么修饰符都没关系(我尝试过使用public,private甚至protected),但我总是收到一个错误,同样的错误。仅在删除修饰符且函数“ Array()”不包含任何修饰符后,代码才干净。有人可以看一下我的代码并向我解释发生了什么吗,我是c#的新手,还是寻求帮助的新手,所以请原谅我迄今为止犯的所有错误。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
public void Array()//nu se pune in interiorul functiei void Main (), deoarece va forma nesting, si ne va da eroare la compilare.
{
int[] intArray;
intArray = new int[3];//all values will be 3
var doubleArray = new[] { 34.23, 10.2, 23.2 };
//var arrayElement = doubleArray[0];
//doubleArray[1] = 5.55;
for (var i = 0; i < intArray.Length; …Run Code Online (Sandbox Code Playgroud)