相关疑难解决方法(0)

在JAVA中,没有字段标志在Class格式中意味着什么?

这是我的代码片段:

public class Test {

    public static void main(String[] args) {

        class EnglishHelloThere {
              int a=10;
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

我创建了一个本地类,以便在编译器中没有为本地类中的变量编写任何修饰符时,查看访问修饰符的类型.

这就是我在JAVAP中得到的

  Compiled from "Test.java"
class com.Test$1EnglishHelloThere
  SourceFile: "Test.java"
  EnclosingMethod: #21.#23                // com.Test.main
  InnerClasses:
       #27= #1; //EnglishHelloThere=class com/Test$1EnglishHelloThere
  minor version: 0
  major version: 51
  flags: ACC_SUPER
Constant pool:
   #1 = Class              #2             //  com/Test$1EnglishHelloThere
   #2 = Utf8               com/Test$1EnglishHelloThere
   #3 = Class              #4             //  java/lang/Object
   #4 = Utf8               java/lang/Object
   #5 = Utf8               a
   #6 = Utf8               I
   #7 = Utf8               <init>
   #8 …
Run Code Online (Sandbox Code Playgroud)

java javap

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

Java实例变量可访问性

Java中以下变量的可访问性有何不同?

public class Joe {
    public int a;
    protected int b;
    private int b;
    int c;
}
Run Code Online (Sandbox Code Playgroud)

我最感兴趣的是最后一个人在做什么.

java variables inheritance accessibility

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

从另一个对象访问的受保护方法访问级别是什么

我正在将对象引用传递给Util类.我试图在Util类上调用受保护的方法,但我得到编译时错误 -

The method setPositionChild(Field, int, int) from the type Manager is not visible
Run Code Online (Sandbox Code Playgroud)

要调用受保护的方法,是否只需要在实现类中?我可以不将引用传递给外部类并从那里调用引用吗?

java

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

为什么Java的"受保护"受保护的程度低于默认值?

在Java中,我们有四个访问说明:public,protected,包私有的(默认),和private.这是 ,而不是我的问题.

我的问题是关于命名protected.如下所示,给一个字段package-private的默认访问说明符可以防止包外的子类使用它,但是应用关键字protected实际上并不保护它 - 相反,它将它打开到子类任何包裹.

那么,为什么不protected保护东西; 为什么它比没有修饰符的限制更少

java terminology access-specifier semantics

4
推荐指数
2
解决办法
1308
查看次数

Java - Class方法可以看到同类参数的私有字段

我遇到了一个相当奇怪的行为,并且不确定这是Java问题还是Eclipse问题.

请使用以下代码:

class Foo {
  private String text;

  public void doStuff(Foo f) {
    System.out.println(f.text);
  }
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是,为什么f.text可以访问?这是一个私有领域,所以根据我的逻辑,它不应该,但IDE似乎认为它是.

java methods private access-modifiers

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

在接口java中重写方法

我用Java编写了一个接口.之后,我尝试通过覆盖来实现它,如代码中所示.但我得到错误,我必须在方法之前添加公共.

为什么我要公开?为什么没有公开它不起作用?

正如Net-Beans所说:"试图分配较弱的访问权限;是公开的"

代码 :

    package tryinginterface;
interface Bicycle {

    //  wheel revolutions per minute
    void changeCadence(int newValue);

    void changeGear(int newValue);

    void speedUp(int increment);

    void applyBrakes(int decrement);
}


class ACMEBicycle implements Bicycle {

    int cadence = 0;
    int speed = 0;
    int gear = 1;
    @Override 
        void changeCadence(int newValue) {
         cadence = newValue;
    }
    @Override
    void changeGear(int newValue) {
         gear = newValue;
    }
    @Override
    void speedUp(int increment) {
         speed = speed + increment;   
    }
    @Override
    void applyBrakes(int decrement) {
         speed …
Run Code Online (Sandbox Code Playgroud)

java netbeans

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

为什么受保护的方法不可见?

Java专家,我真诚地感谢任何见解!

我的包中有一个带有受保护方法的抽象类。我在同一个包中还有这个类的子类。现在,当我尝试从包外部的类实例化子类,并在子类实例上调用受保护的方法时,Eclipse 抱怨受保护的方法不可见。

我认为,受保护的方法将对所有子类可见 - 包内或包外 - 只要类可见性不限制它 - 在这种情况下,父类和子类都是公共的。我缺少什么?提前致谢!

package X;
public abstract class Transformation {
  protected OutputSet genOutputSet (List list) {
    ..
  }
}
Run Code Online (Sandbox Code Playgroud)


package X;
public class LookupTransformation extends Transformation {
}
Run Code Online (Sandbox Code Playgroud)


package Y;
import X.*;
public class Test {
  public static void main(String[] args) {
    List<field> fld_list = new ArrayList();
    ..
    LookupTransformation lkpCDC = new LookupTransformation();
    OutputSet o = lkpCDC.genOutputSet(fld_list); // Eclipse errors out here saying genOutputSet from the Type Transformation is not visible. WWWWWWWWHHHHHAAAATTTTTT????
  } …
Run Code Online (Sandbox Code Playgroud)

java

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

Android HttpURLConnection.setChunkedStreamingMode()的默认块长度?

HttpURLConnection.setChunkedStreamingMode()的文档中,它说如果我在参数中指定0,它将使用默认的块长度,例如:

conn.setChunkedStreamingMode(0);
Run Code Online (Sandbox Code Playgroud)

默认块长度的确切值是多少?什么是参数的单位?以字节为单位

android httpurlconnection

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

Java - 为什么另一个包中的子级无法通过父级引用访问父级的受保护方法?

我在两个不同的包中有两个类:

package package1;

public class ParentClass {
    public void testPublic() {
    }

    protected void testProtected() {
    }
}


package package2;

import package1.ParentClass;

public class ChildClass extends ParentClass {
   void test() {
        ParentClass par = new ParentClass();
        par.testProtected(); // Line 1 : ERROR: testProtected() has protected access in ParentClass
        testProtected();     // Line 2 : No error

        ChildClass ch = new ChildClass();
        ch.testProtected(); // Line 3 : No ERROR
        testProtected();    // Line 4 : No error
    }    
}
Run Code Online (Sandbox Code Playgroud)

我能够理解为什么调用时没有错误testProtected() -- …

java inheritance protected access-modifiers package

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

Java的默认访问修饰符曾经是公开的

早在2004年,当我在RIT参加CS课程的介绍时,我的教授非常强调我们记得放入访问修饰语.没有它,默认访问将是公开的,我记得教授说的.也许我的记忆是错的,教授实际上并没有说出来,但显然现在情况并非如此.我想知道在某些时候是否曾经是这种情况,也许Sun在2004年之后的某些时候改变了它?

java access-modifiers

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