A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如题,方法是否一定要定义在类中?定义在接口中的抽象方法,叫不叫方法呢?求解!谢了!

11 个回复

倒序浏览
java所有的东西都在类中
回复 使用道具 举报
方法就是解决一类问题的有序代码组合,无论定义在哪里。
回复 使用道具 举报
是的,在java中有着万物皆对象的说法,所以任何操作都会被封装在一个类中
回复 使用道具 举报
你都说是抽象方法咯,那肯定是方法啊,只是定义在接口中的方法没有方法体而已。
回复 使用道具 举报
脱离类的方法到底有没有?
思考下,如果一个方法没有归属(类、接口),不指定谁拥有这个类,那它怎么被调用呢?
不能调用,还有存在的意义吗?用都不能用,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:个人瞎琢磨,欢迎指教

点评

真有心。。还去自己整代码。。  发表于 2015-1-10 15:37
回复 使用道具 举报
接口、枚举、抽象类
回复 使用道具 举报
抽象方法也是方法嘛
回复 使用道具 举报
抽象方法你自己都说了肯定是啊
回复 使用道具 举报
java最核心的地方就是面向对象思想,把所有东西放在一个“包”里,而这个包就是类,方法当然就是该定义在类中,当你new出一个对象时,就可以用这个对象将类中的方法属性实现。就比如一辆车,发动机,轮胎应该安装在哪里,当然是在车里,当你用车时,直接new一个车出来开车对不对,而不是自己动手组装再开车
回复 使用道具 举报
楼上说的很详细,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马