当前位置:  技术问答>java相关

为什么有public就编译不通过?

    来源: 互联网  发布时间:2015-02-25

    本文导语:  大家编译一下下面的代码,当Dog类前有public时就编译不通过,没有则通过,我对访问控制符的基本概念还是知道的,就是还不太清楚编程时该怎么使用他们。请帮我解释一下。谢谢。 class SL275  { public static void main...

大家编译一下下面的代码,当Dog类前有public时就编译不通过,没有则通过,我对访问控制符的基本概念还是知道的,就是还不太清楚编程时该怎么使用他们。请帮我解释一下。谢谢。
class SL275 
{
public static void main(String[] args) 
{
Dog d=new Dog();
d.setWeight(42);
}
}


public class Dog
{
  private int weight;

  public int getWeight()
  {
    return weight;
  }

  public void setWeight(int newWeight)
  {
    weight = newWeight;
  }
}

|
package就是打包的意思,package mypackage;表明,这个编译单元属于mypackage的一个库的
一部分。
其实,每个文件只能有一个或者一个都没有public类,所以,你只要把Dog前面的public去掉
就可以编译成功,public如果要有,必须与包含编译单元的那个文件的名字完全相符,而不是说
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
有main的class就要有public,如果你现在定义的是Dog文件,编译也是没有问题的。
至于内部类嘛
public class SL275 
{
   class Dog
  {
     private int weight;

     public int getWeight()
    {
      return weight;
    }

     public void setWeight(int newWeight)
    {
      weight = newWeight;
    }
  } 
     public static void main(String[] args) 
   {
     Dog d=new Dog();
     d.setWeight(42);
    }
}

这样就是了!多看书,书上说的很明白。


|
一个文件里只能有一个public class,有main的class应该是public

|
一个*.java文件只能有一个public类,而且要与文件名相同。

|
那么类SL275应定义为public,类Dog的public去掉,如果非要定义为public的话,从新建立一个文件然后在SL275中用import或package引入。

|
class Dog怎么是内部类呢?内部类是指将一个类定义置入另一个定义中。

|
在一个java文件中,只有主类的类型才能声明为public,并且也只能有一个public,要不然编译程序会找不到程序的入口.比方说有main()方法的类一定要声明为public

|
错误不是很清楚吗?
类Dog是公共的(public),应该在名为Dog。java的文件中被声明public class Dog
文件名叫Dag.java不就可以了吗?

|
补充一点,一个*.java文件中不能有两个public类声明.

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.security枚举keyrep.type的类成员方法: public定义及介绍
  • 我试了一下,main()可以不要public,正常执行.但是Sun的教程上说main()必须是public+static+void的,请各位高手讨论一下!
  • java命名空间javax.lang.model.element枚举modifier的类成员方法: public定义及介绍
  • 有关于public的相关问题;
  • java命名空间java.lang.reflect类modifier的类成员方法: public定义及介绍
  • Public key用户 创建的用户不能登录
  • java命名空间javax.swing.text.html.parser接口dtdconstants的类成员方法: public定义及介绍
  • 为什么加 public 会出错?
  • java命名空间java.lang.reflect接口member的类成员方法: public定义及介绍
  • 我声明一个 public void store() 系统说是非法字符 这是什么原因?
  • java命名空间javax.crypto类cipher的类成员方法: public_key定义及介绍
  • public成员为什么找不到?头大啊……
  • java命名空间javax.xml.transform类outputkeys成员方法: doctype_public定义参考
  • public class Test 和 class Test 两种声明有什么区别
  • java命名空间javax.sql.rowset接口webrowset的类成员方法: public_xml_schema定义及介绍
  • 非root账号能否建立public key?
  • java命名空间javax.xml.bind.annotation枚举xmlaccesstype的类成员方法: public_member定义及介绍
  • 关于public?
  • java 类修饰符(private,public和protected)所代表的权限
  • 请问 access modifier 怎么翻译?? 就是 public ,private 等等。
  • 构造器也可以带public吗?volatile怎么用?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3