首页 > 试题广场 >

下列外部类定义中,不正确的是:( )

[单选题]

下列外部类定义中,不正确的是:(


  • class x { .... }
  • class x extends y { .... }
  • static class x implements y1,y2 { .... }
  • public class x extends Applet { .... }
static修饰的为类成员,会随着类的加载而加载,比如静态代码块,静态成员,静态方法(这里只是加载,并没有调用)等等,可以想象一下,如果把一个Class文件中的外部类设为static,目的难道是让这个类随着应用的启动而加载吗?如果在这次使用过程中根本没有使用过这个类,那么是不是就会浪费内存。这样来说设计不合理,总而言之,设计不合理的地方,Java是不会让它存在的。
而为什么内部类可以使用static修饰呢,因为内部类算是类的成员了,如果没有使用静态来修饰,那么在创建内部类的时候就需要先有一个外部类的对象,如果我们一直在使用内部类,那么内存中就会一直存在外部类的引用,而我们有时候只需要使用内部类,不需要外部类,那么还是会浪费内存,甚至会造成内存溢出。使用static修饰内部类之后,内部类在创建对象时就不需要有外部类对象的引用了。
最终结论就是:static可以用来修饰内部类,但是不可以用来修饰外部类
发表于 2018-04-11 15:36:22 回复(22)
内部类可以是静态static的,也可用public,default,protected和private修饰,
外部类的修饰符只能是public,abstract,final
发表于 2017-08-24 14:53:30 回复(13)
static不能用来修饰类,除非类是内部类,此时该类作为外部类的成员变量,可以用static来修饰
发表于 2017-05-23 20:12:21 回复(2)
static class 是java内部类的一种,不能声明为外部类

编辑于 2019-10-21 17:03:47 回复(1)
内部类可以用static修饰,外部类则不能。
此外,外部类只能用public和defaule以及final修饰。内部类几乎都可以用修饰符public、protected、default、private和final、static修饰。

*****补充*******
局部内部类 和局部变量一样不能用访问权限修饰符修饰。
编辑于 2018-07-19 15:38:26 回复(0)
一般的思路是先有外部类,再有内部类。如果内部类是静态,就不需要外部类对象的引用了。而外部类不可以为static,不需要程序启动就存在。浪费。
发表于 2019-03-15 06:15:16 回复(0)
外部类不能用static,private,protected,这些修饰符。 另外成员内部类和静态内部类可以拥有四种访问修饰符和属性一样。 局部内部类和匿名内部类就相当于局部变量,不能用访问修饰符,除了final,毕竟这两种的地位相当于局部变量。
发表于 2022-05-21 09:29:36 回复(0)
外部类不能使用static修饰;
内部类可以使用static修饰(可以把内部类想象成一个成员变量)
发表于 2018-10-27 19:33:12 回复(0)
static一般用来修饰成员变量或者方法。被static修饰了的变量或者方***随着类的加载而加载,即使该类还未创建实例对象。但还有一种情况就是static修饰内部类,被static修饰的内部类可以直接作为一个普通类来使用,而不需实例一个外部类。
发表于 2017-07-28 10:51:34 回复(0)
static class x implements y1,y2 { .... }

这句要是内部类没问题啊,莫非这不叫做类定义?

发表于 2017-05-18 22:20:35 回复(3)
static 可以修饰内部类,但不能修饰外部类
发表于 2022-03-12 13:53:47 回复(0)
static可以修饰内部类不可以修饰外部类
发表于 2021-02-06 10:17:27 回复(0)
D也应该是错的,public不能修饰外部类
发表于 2020-10-01 15:10:30 回复(1)
外部类只能是public,abstract,final修饰
发表于 2020-09-01 16:42:50 回复(0)

比如说,外部类A有个内部类B,如果内部类B不用static修饰,那么要调用B时,必须先创建A对象,如果我们只想使用内部类B,则浪费了内存,使用了static则可以直接创建B对象,也不用A类引用。

发表于 2020-03-13 20:38:11 回复(0)
vcc头像 vcc
static不能用来修饰类,除非类是内部类。
发表于 2018-03-02 01:34:18 回复(0)
外部类的修饰符只能是public,abstract,final
发表于 2017-08-11 13:45:08 回复(0)
一个文件不是只能有一个public类吗?
发表于 2022-09-14 15:49:45 回复(0)
static不可以修饰外部类哦,只能修饰成员变量或成员方法或者内部类
编辑于 2023-02-07 19:17:55 回复(2)
外部类不能用static修饰,外部类的修饰符只有public、abstract、final
发表于 2018-04-19 19:46:06 回复(0)