Static表示静态,用Static方法是静态只能调用静态的方法,可是今天问题出来了
看下面代码:
class Person
{
private int age;
public void setage(int a)
{
if(a>0&&a<100)
{
age = a;
}
else
{
System.out.print("错误");
}
}
public int getage()
{return age;}
public void speak()
{
System.out.print("age="+age);
}
}
class Demo
{
public static void main(String[] args)
{
Person p = new Person();
p.setage(20);
p.speak();
}
}
运行javac Demo.java,结果为20
可现在我不明白的是静态不是只能调用静态吗?Person p= new Person()明显不是静态的啊,他在Person类中创建了一个新的对象P,如果要是能修改成运行后报错显示Person p = new Persong90是非静态的不能调用,请问怎么修改啊?
------解决方案--------------------
这是通过实例化的对象来调用,是不一样的;
调用静态方法;
public static void main(String[] args)
{
Person p = new Person();
p.setage(20);
p.speak();
print();
}
public static void print()
{
System.out.println("测试");
}