| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3508 人关注过本帖
标题:[求助]无法从静态上下文中引用非静态方法
只看楼主 加入收藏
Just217
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-3-16
收藏
 问题点数:0 回复次数:6 
[求助]无法从静态上下文中引用非静态方法

小错能自己改 就是
LetterFrequencyDetector.java:53: 无法从静态上下文中引用非静态 方法 buildAlphabet
()
buildAlphabet( );
^
LetterFrequencyDetector.java:54: 无法从静态上下文中引用非静态 方法 removeNonLett
ers(java.lang.String)
ArrayList a=removeNonLetters(args[0]);
^
LetterFrequencyDetector.java:55: 无法从静态上下文中引用非静态 方法 calculateFreq
uencies(java.util.ArrayList)
calculateFrequencies(a);
^
LetterFrequencyDetector.java:56: 无法从静态上下文中引用非静态 方法 displayFreque
ncies()
displayFrequencies();

实在不知道怎么改了..



代码:
import java.util.*;
public class LetterFrequencyDetector{
ArrayList<Character> Alphabet = new ArrayList<Character>( );
ArrayList<Character> reAlphabet=new ArrayList<Character>( );
ArrayList<Integer> Frequency=new ArrayList<Integer>();
int[] count=new int[26];
public ArrayList buildAlphabet( ){

for(int i=97;i<=122;i++){
Alphabet.add((char)i);
}
return Alphabet;
}

public ArrayList removeNonLetters(String s){



s=s.toLowerCase();
for(int i=0;i<s.length();i++){
int c=s.charAt(i);
if(c>=97&&c<=122)
count[c-97]++;
}
for(int j=0;j<26;j++){
if(count[j]==0)
reAlphabet.remove(j);
}
return reAlphabet;
}

public ArrayList calculateFrequencies(ArrayList a){

Frequency.size=reAlphabet.size;

for(int i=0;i<26;i++){
if(count[i]!=0)
Frequency.add(count[i]);
}
return Frequency;
}

public void displayFrequencies(){
for(int i=0;i<reAlphabet.size();i++){
System.out.print(reAlphabet.get(i)+"--"+Frequency.get(i));
for(int j=0;j<Frequency.get(i);j++){
System.out.print("*");
}
System.out.println();
}
}
public static void main(String args[]){
buildAlphabet( );
ArrayList a=removeNonLetters(args[0]);
calculateFrequencies(a);
displayFrequencies();
}
}

搜索更多相关主题的帖子: 静态 
2007-05-19 09:54
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

编译器已经非常明确地告诉你了

无法从静态上下文中引用非静态 方法 buildAlphabet
在你的main方法里面是不能直接用buildAlphabet这个方法的,因为它是非静态的,你要用非得生成一个对象,然后用对象去调用它


可惜不是你,陪我到最后
2007-05-19 09:57
Just217
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-3-16
收藏
得分:0 
回复:(Just217)[求助]无法从静态上下文中引用非静态...
可以具体点么..我新学java没多久,希望楼上的大哥能具体一点,最好能举个例子啥的
2007-05-19 10:39
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

一个很简单的方法,就是所有的成员变量都声明static ,所有的方法也声明成static的


可惜不是你,陪我到最后
2007-05-19 10:51
Just217
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-3-16
收藏
得分:0 
以下是引用千里冰封在2007-5-19 10:51:41的发言:

一个很简单的方法,就是所有的成员变量都声明static ,所有的方法也声明成static的

这样对功能有什么影响么?

2007-05-19 11:04
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

当然有,这样你生成的对象就没 有意义了


可惜不是你,陪我到最后
2007-05-19 11:19
快速回复:[求助]无法从静态上下文中引用非静态方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015617 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved