无法重静态上下文中引用非静态变量thispublic class Test{
public static void main(String [] args){
Count MyCount=new Count();
int times=0;
for (int i=0;i<100;i++)
increment(MyCount,times);
System.out.println(MyCount.count);
System.out.println(times);
}
public static void increment(Count c,int times)
{
c.count++;
times++;
}
}
class Count{
public int count;
Count (int c);
{
count=c;
}
Count(){
count=1;
}
}//这种形式可以没有错误
public class Test{
public static void main(String [] args){
Count MyCount=new Count();
int times=0;
for (int i=0;i<100;i++)
increment(MyCount,times);
System.out.println(MyCount.count);
System.out.println(times);
}
public static void increment(Count c,int times)
{
c.count++;
times++;
}
class Count{
public int count;
Count (int c);
{
count=c;
}
Count(){
count=1;
}
}
}
//这种形式就有我那个错误,错误我明白是是什么意思就不不明白错误提示的意思。。大侠们帮解释下?
public static void main(String [] args){
Count MyCount=new Count();
int times=0;
for (int i=0;i<100;i++)
increment(MyCount,times);
System.out.println(MyCount.count);
System.out.println(times);
}
public static void increment(Count c,int times)
{
c.count++;
times++;
}
}
class Count{
public int count;
Count (int c);
{
count=c;
}
Count(){
count=1;
}
}//这种形式可以没有错误
public class Test{
public static void main(String [] args){
Count MyCount=new Count();
int times=0;
for (int i=0;i<100;i++)
increment(MyCount,times);
System.out.println(MyCount.count);
System.out.println(times);
}
public static void increment(Count c,int times)
{
c.count++;
times++;
}
class Count{
public int count;
Count (int c);
{
count=c;
}
Count(){
count=1;
}
}
}
//这种形式就有我那个错误,错误我明白是是什么意思就不不明白错误提示的意思。。大侠们帮解释下?
main方法也是今年静态方法,在静态方法内部不能调用本类的非静态属性,也包括内部类了。
static int times=0;
public static void main(String [] args){
Count MyCount=new Test().new Count();for (int i=0;i<100;i++)
increment(MyCount);
System.out.println(MyCount.count);
System.out.println(times);
}
public static void increment(Count c)
{
c.count++;
times++;
}
class Count{
public int count;
Count (int c) {
count=c;
}
Count(){
count=1;
}
}
}
另外的你的times 也应该声明成 static ,不然就只会是零啦
public static void main(String[] args) {
Count MyCount = new Count();
int times = 0;
for (int i = 0; i < 100; i++)
increment(MyCount, times);
System.out.println(MyCount.count);
System.out.println(times);
} public static void increment(Count c, int times) {
c.count++;
times++;
}
}class Count {
public int count; Count(int c)// 貌似多了个 “;”
{
count = c;
} Count() {
count = 1;
}
}// 这种形式可以没有错误这是一个内部类的例子,没有外部类实例哪有内部类public class Test {
public static void main(String[] args) {
Count MyCount = new Test().new Count(); //内部类,没有外部类的实例是无法直接创建
int times = 0; //内部类实例的
for (int i = 0; i < 100; i++)
increment(MyCount, times);
System.out.println(MyCount.count);
System.out.println(times);
} public static void increment(Count c, int times) {
c.count++;
times++;
} class Count { // 除非 class 前面 加上 static
public int count; Count(int c)// 貌似又多了个 “;”
{
count = c;
} Count() {
count = 1;
}
}
}这是一个静态的内部类的例子 用的不多 贴出来用于比较学习public class Test {
public static void main(String[] args) {
Count MyCount = new Count(); //内部类,没有外部类的实例是无法直接创建
int times = 0; //内部类实例的
for (int i = 0; i < 100; i++)
increment(MyCount, times);
System.out.println(MyCount.count);
System.out.println(times);
} public static void increment(Count c, int times) {
c.count++;
times++;
} static class Count { // 除非 class 前面 加上 static
public int count; Count(int c)// 貌似又多了个 “;”
{
count = c;
} Count() {
count = 1;
}
}
}把代码拿去 看看就懂了