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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 惜别的海岸 中级黑马   /  2013-5-16 19:54  /  1432 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 惜别的海岸 于 2013-5-17 00:01 编辑

看了自学视频,自己写的一段代码如下:
//数组元素由小到大排序方法:
public void sortArray(int[] arr)
{
        for(int i=0;i<arr.length-1;i++)
        {
                for(int j=i+1;j<arr.length;j++)
                {
                        if (arr>arr[j])
                        {
                                int temp=0;
                                temp=arr;
                                arr=arr[j];
                                arr[j]=temp;
                        }
                }
        }
}

//输出数组中每个元素的方法:
public void printArray(int[] arr)
{
        System.out.print("[");
        for(int i=0;i<arr.length;i++)
        {                        
                if(i!=arr.length-1)
                {
                        System.out.print(arr+",");                                
                }
                else
                {
                        System.out.println(arr+"]");
                }
               
        }
}

//main函数
class SelectArray
{
        public static void main(String[] args)
        {
                int[] arr1={2,1,5,8,4};               
                printArray(arr1);
                sortArray(arr1);
                printArray(arr1);
        }
}
后来查出问题来了,两个方法都要加static,并且都要放在类中,这个是什么原因,请详细说明,谢谢。

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

3 个回复

倒序浏览
本帖最后由 飞鸟青崖 于 2013-5-16 20:12 编辑

主函数是静态的,而静态的方法只能调用静态的成员变量或者方法,所以两个方法都要加static。
把方法放在类中,是为了能执行方法。
其实,我觉得Java中的类就相当于把方法给分类了。假如一个方法是一个学生的话,那么类就相当于是班级,一个班级中包含好多学生。你再找某个学生的时候就会先找班级,
找到班级之后就好找这个学生了。这也是一样的。先找这个方法所在的类,再通过类来找这个方法,这样就方便好多。
当你不把方法放在类中时,就相当于一个学生没有班级,你要找它就根本不可能。所以如果不把方法放在类中,这个方法就没办法执行。就像不把一个语句放在方法中一样。
还有一点忘了说:
     虽然类中包含方法,但并不意味着方法可以随便放一个类中。就像你不能把一个学数学的学生放到一个学英语的班级中一样。一般来说方法和类是有一定关系的。
其实很多时候是先存在类,然后再根据需要在这个类中创建相应的方法。

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

回复 使用道具 举报
Java是面向对象的,方法必须放在类里面,要不然不就成了C了吗
回复 使用道具 举报
首先说下,假如放在类的应该定义为功能类,调用的时候通过new来调用。
加static关键在是因为main方法是用static来修饰的,也就是静态
关于static静态关键字有这样的规则:
                A:静态只能访问静态成员,非静态可以访问静态也可以访问非静态成员。
                B:静态方法中没有this,super关键字。
                        this,super是创建对象的时候才存在的,而静态是随着类的加载而加载。先加载的不能访问后加载的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马