脱离类的方法到底有没有?
思考下,如果一个方法没有归属(类、接口),不指定谁拥有这个类,那它怎么被调用呢?
不能调用,还有存在的意义吗?用都不能用,JVM估计不会让它存在,浪费内存啊!
测试用例:
public void Get()
{
System.out.println("我是脱离方法的类。");
}
class You
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
编译结果:
---------- 编译 ----------
You.java:1: 错误: 需要class, interface或enum
public void Get()
^
1 个错误
输出完成 (耗时 6 秒) - 正常终止
编译结果处理:
通过编译结果,我们可以根据提示【需要class,interface或enum】,应该就是没有所属导致的。
尝试解决:
1、添加类:
class MyName
{
public void Get()
{
System.out.println("我是脱离方法的类。");
}
}
class You
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
编译结果:
---------- 编译 ----------
输出完成 (耗时 1 秒) - 正常终止
2、添加接口:
interface MyName
{
public void Get();
}
class You
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
编译结果:
---------- 编译 ----------
输出完成 (耗时 0 秒) - 正常终止
注意:接口中的方法不能有主体,没有实现的方法,谁实现它谁实现自己的方法主体。
3、添加enum:
介绍下enum的用法:
简单的用法:JavaEnum简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值。如:
性别:
public enum SexEnum {
male, female;
}
代码:
enum MyName{
public void Get()
{
System.out.println("我是脱离方法的类。");
}
}
class You
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
编译结果:
---------- 编译 ----------
You.java:1: 错误: 需要<标识符>
enum MyName{
^
You.java:2: 错误: 需要',', '}'或';'
public void Get()
^
You.java:2: 错误: 需要'}'
public void Get()
^
You.java:5: 错误: 需要class, interface或enum
}
^
4 个错误
输出完成 (耗时 1 秒) - 正常终止
枚举类,需要枚举常量(这点我也不懂)
enum MyName{
id; //添加一个枚举常量
public void Get()
{
System.out.println("我是脱离方法的类。");
}
}
class You
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
编译结果:
---------- 编译 ----------
输出完成 (耗时 0 秒) - 正常终止
总结:方法不能独立存在,必须指明归属,以便使用。接口、抽象类和enum归根都属于类,特殊点罢了
ps:个人瞎琢磨,欢迎指教
|