黑马程序员技术交流社区

标题: 关于static的问题,自己写了个实例,问题标在里面了 [打印本页]

作者: 咕咕猫    时间: 2013-9-5 16:00
标题: 关于static的问题,自己写了个实例,问题标在里面了
本帖最后由 咕咕猫 于 2013-9-5 18:37 编辑

练习三查找字符串中出现指定字符串出现的次数。例如"ehfiehiehwiuhwefgewugehihfihfri"中"hi"出现的次数.*/
class Test
{
        public static int menthod(String s,String s1)//{:soso_e132:}*****这里有个疑问不太明白,能不能不加static如果不加static应该怎么将程序改变下,这个不太懂.
        {   
                int x=0;//建立一个计数器变量
                if (s.contains(s1))//判断内部是否含有要查找的字符串
                {
                        
                        for (int start = 0; s.indexOf(s1,start)!=-1;)//[s.indexOf(s1,start)!=-1]确保字符串中不再含要有查找的字符串
                        {
                                int y = s.indexOf(s1,start);//记录要查找的字符串出现的位置
                                start = y + s1.length();//改变起始查找位置
                                x++;
                                
                        }
                }
                return x;//返回出现次数
        }
        public static void main(String[]args)
        {
                String s = "ehfiehiehwiuhwefgewugehihfihfri";//基字符串,即在此字符串中进行查找
                String s1= "hi";//所需查找的字符串
                int x = menthod(s,s1);
                System.out.println("x="+x);
        }
}


作者: 路边小色狼    时间: 2013-9-5 16:09
不可以不加static,因为你主函数调用了menthod方法。主函数调用静态方法
作者: 咕咕猫    时间: 2013-9-5 16:27
路边小色狼 发表于 2013-9-5 16:09
不可以不加static,因为你主函数调用了menthod方法。主函数调用静态方法

那能不能写一种不用静态的方法呢,是不是就要重新建立一个类然后建立对象来调用方法呢

作者: 路边小色狼    时间: 2013-9-5 16:45
咕咕猫 发表于 2013-9-5 16:27
那能不能写一种不用静态的方法呢,是不是就要重新建立一个类然后建立对象来调用方法呢
...

可以,把上面的函数独立出个类来,然后在主函数里new一个对象,再调用就好了
作者: 落叶归根    时间: 2013-9-5 18:22
static是静态访问修饰符,她要想访问别的类或者本类中的方法,别的类或者方法必须加static,否则不能访问!
如果要访问的不是静态的方法或者类,那么要把static去掉。static是不可以直接访问不是静态的方法或类的。
不加static的类,可以直接访问加static的类。
作者: 咕咕猫    时间: 2013-9-5 18:35
落叶归根 发表于 2013-9-5 18:22
static是静态访问修饰符,她要想访问别的类或者本类中的方法,别的类或者方法必须加static,否则不能访问! ...

嗯嗯非常感谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2