2013-03-25 109 views
-2

我已经粘贴了代码,现在我的查询是在名为“accesssp”的第一个类中添加了对象,然后编写了SOP,那么为什么我不能输出值为B? b的访问是私人的,但我在同一类中获取价值需要了解公共和私人

我已经完成了部分BOLD,我不明白。

class accesssp { 

public int a=56; 
private int b=5566; 
public int c=58766; 

System.out.println(b); 

} 

class accesssp1 extends accesssp{ 

public void accessd() { 

    System.out.println(a); 
    System.out.println(c); 

} 

} 
public class Access_Spf { 

public static void main(String[] args) { 


    accesssp1 sp1 = new accesssp1(); 
    sp1.accessd(); 
} 

} 
+0

该代码不能编译。您应该阅读编译器错误消息。如果你不理解它,你应该粘贴准确完整的编译器错误信息,而不是让我们猜测问题可能是什么。 – 2013-03-25 10:10:15

+0

您需要将print语句放在类的一个方法中。 – 2013-03-25 10:16:35

回答

0
System.out.println(b);

既不在main()方法也没有在任何功能。这不能像你所做的那样直接执行。在附注中,变量b将不能在accesssp1类中访问。

+0

那么什么是方法来显示b的价值, Sorrrry bt我是一个初学者,所以请不要嘲笑我...:D – 2013-03-25 10:16:50

+0

使用任何方法。尝试:'public accesssp(){System.out.println(b);}' – Aashray 2013-03-25 10:17:35

+0

它在构造函数中被调用。 – Aashray 2013-03-25 10:18:35

1

那么,它的cuz system.out.println语句应该在方法/构造函数体内,就像你在第二和第三种情况下所做的那样。这是一个编译器错误。

class accesssp { 

public int a=56; 
private int b=5566; 
public int c=58766; 

System.out.println(b);//should be inside a method/cons body 

} 
+0

我明白你想说什么bt不正确, 请你告诉我,在代码中我应该把它放在哪里? – 2013-03-25 10:14:30

+0

你的打印语句不能在类体内。它必须在块或方法体内部。 – PermGenError 2013-03-25 10:15:46

+1

明白了。 10x 4帮助。 – 2013-03-25 10:41:17

0

SOP应该在任何方法内。在accesssp1的构造函数使用构造函数,并打印在构造函数中,然后调用super()

class accesssp { 

public int a=56; 
private int b=5566; 
public int c=58766; 

public accesssp() 

{ 
System.out.println(b); 
} 

} 

class accesssp1 extends accesssp{ 

public accesssp1() 
{ 
super(); 
} 


public void accessd() { 


System.out.println(a); 
System.out.println(c); 

} 

} 
public class Access_Spf { 

public static void main(String[] args) { 


accesssp1 sp1 = new accesssp1(); 
sp1.accessd(); 

} 

} 
+0

非常感谢你的先生, 希望得到你的进一步帮助。 再次感谢...:) – 2013-03-25 10:18:55

+0

不客气。你可以接受这个。你可以用google搜索这个。许多人会投下这个问题。 – iCode 2013-03-25 10:20:52

+0

我不在乎这个投票系统。因为我是java的初学者。 那么, 需要回答一个愚蠢的问题, 需要constructer? – 2013-03-25 10:22:35

0

在Java中访问说明,还有,

private, public and protected. 

上述每一个都有那里的功能,他们在那里的范围和知名度的基础上解释。

private has scope & visibility resides only on inside a function or there the class. 

例如:

public class classFirst 
{ 
    private int variableName1;//scope and visibility inside this class 
    public void function1() 
    { 
     private int variableName2;//scope and visibility inside this function not use outside. 
    } 
} 

公众范围&知名度驻留在任何地方的项目(时堪称外面只是与自己对象的调用)。这些值是通过它们的对象来访问的。

例如:

public class classSecond 
{ 
    public int variableName1;//scope and visibility anywhere on the project 
    public void function1() 
    { 
     public int variableName2;//scope and visibility anywhere on the project 
    } 
} 

保护具有范围&能见度在班级里面,也访问公共继承的类。

所以System.out.println(b);语句必须在第一类的构造函数中。

+0

如果在方法内部没有访问说明符,我会给+1,它们会给编译错误。 – Nulano 2014-09-23 18:17:23