鱼金金~ 2021-12-10 20:34 采纳率: 89.2%
浏览 21
已结题

关于Java对象的问题

下图,最后main方法的对象声明在哪里,只有一个包和这个类。能创建对象后直接点调用方法吗?

img

附:以上两个接口怎么能同时定义在同一个类里呀(没有单一职责)而且我亲自写了一次也发现没报错!
而且一个类里能有多个class吗?

img

  • 写回答

1条回答 默认 最新

  • CTimet 2021-12-10 21:10
    关注

    我对于你的这些问题的回答是:
    1.方法没有对象。没有这样说的。对象是类的对象。由这个类的对象调用该类中的方法,不存在什么方法对象。
    2.main方法的使用由虚拟机处理。不能在代码中调用main。否则会报错。
    3.

    img


    这段代码,第一段是package语句,声明类的存放位置。如图所示,这个类应该放在com文件夹下的imooc文件夹下的ttest里
    第二段,interface语句声明一个接口。如图,interface one声明了一个名字叫one的接口。接口不能包含实例字段,但是可以包含常量。final int x = 22;就是声明了一个常量。不过,这里可以把final去除,因为接口中的所有字段默认都是public static final(同时,接口中的所有方法都被默认设置成public)。还有,在语法上,我们声明常量时一般用的是字母大写,这里应该把x换成X更好。虽然x没问题,但我们不推荐这样写。
    4.

    img


    这段代码与3相似,不再介绍,值得一提的是,Three类中的int值声明时可以把前面的public去掉。这个值。。设置成public没啥意义。还是和x一样,虽然没错,但是不推荐这么写。
    5.

    img


    这段代码也很好理解,用public声明了一个TestOne类,并使用implements关键字实现了one和two这两个接口。然后在test这个方法中,调用println方法输出了两个接口里的两个常量。下面的main方法中的new TestOne().test()也很好理解。这不就是实例化了一个Testone对象然后对这个对象调用了test方法嘛。换句话说,这段代码等同于:

    TestOne t = new TestOne();
    t.test();
    

    调用这个test方法后,程序会执行test方法内的语句,由于test被声明成void,所以它不会返回任何东西。println方法是test方法调用的,对TestOne这个对象没有任何影响,同样,TestOne也不会受到任何信息,它只是作为一个启动方法的载体被使用的,方法执行后他就被抛弃了,不存在任何价值。这就是为什么要用new TestOne().test()这行语句而不是TestOne t = new TestOne();t.test();了。因为这个对象启动test方法后就不存在任何价值了。给这个对象起名字几乎是多此一举。还不如直接用new后的对象直接调用呢。
    6.java文件中允许有多个类。你用class声明多少个类都没有问题。但是,用public声明的类只能在文件中有一个。被声明成public的类只能有一个且这个类名必须与文件名相同。如图,

    img


    这里声明的类TestOne类被声明为public(公共的),那么这个TestOne一定是文件名。即文件一定是TestOne.java
    不过,当类中不存在用public声明的类时。不用public声明的类里只要有一个名字和文件名相同即可,来看下面的代码:

    class a {}
    class b {}
    class c {}
    

    看,这个文件中有3个没有被public声明的类,他们是a,b,c.那么,文件名可以叫a.java,也可以叫b.java或者c.java。但是如果我在里面加一句

    public class d {}
    

    则文件名必须叫d.java

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月21日
  • 已采纳回答 12月13日
  • 创建了问题 12月10日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?