黑马程序员技术交流社区

标题: 错误代码,请帮忙看下怎么错的 [打印本页]

作者: 勾尧    时间: 2012-10-22 22:45
标题: 错误代码,请帮忙看下怎么错的
菜鸟自学中,自己写的代码产生错误,不太清楚怎么错的,请帮忙分析下
class Person
{
        int age;
        if (age>0)
           System.out.println("age="+age);
        else
           System.out.println("over");
}

class PersonDemo
{
        public static void main(String[] args)
        {
           Person p = new Person();
           p.age = - 20;
        }

}

错误.JPG (22.56 KB, 下载次数: 26)

错误.JPG

1.JPG (20.64 KB, 下载次数: 18)

1.JPG

作者: 陆建平    时间: 2012-10-22 22:53
应该这样写了
class Person
{
        public int age;
        Person()
        {
        if (age>0)
           System.out.println("age="+age);
        else
           System.out.println("over");
        }
}

class PersonDemo
{
        public static void main(String[] args)
        {
           Person p = new Person();
           p.age = - 20;
        }

}

作者: 勾尧    时间: 2012-10-22 22:59
陆建平 发表于 2012-10-22 22:53
应该这样写了
class Person
{

你好,请问,为什么if要放到函数中,单独就不行
比如,只有一个类的情况,就没有报错,是有相关规定么?
class Demo
{
        public static void main(String[] args)
        {
                int a=-20;
       if(a>0)
                   System.out.println("a"+a);
           else
                   System.out.println("over");
        }
       
}
作者: 张其辉    时间: 2012-10-22 23:05
类里面要么是成员变量要么是函数,不能直接在里面写逻辑判断语句的,像楼上所写,可以把逻辑判断语句放在构造函数中,在创建person对象的时候就开始判断了
作者: 勾尧    时间: 2012-10-22 23:35
张其辉 发表于 2012-10-22 23:05
类里面要么是成员变量要么是函数,不能直接在里面写逻辑判断语句的,像楼上所写,可以把逻辑判断语句放在构 ...

你好,像3l时候的情况没有问题,是不是可以理解成,包含main的类中可以有判断语句,而其他的类只能包含变量和函数
作者: 张其辉    时间: 2012-10-23 09:15
其实main方法也是类中的一个静态方法,只是它是虚拟机运行所认识的入口罢了。还有就是所有的方法中都可以有逻辑判断语句(抽象的除外)。你不用把他看的很特殊,就是类中的一个静态方法。它本身所处的类中还可以存在其他方法,但是也要是静态的才可以被main方法调用。
例:
class PersonDemo
{
        public static void main(String[] args)
        {
            show();
            Person p=new Person();
            p.show();
        }
        public static void show(){system.out.println("main:你好");}
}
class person
{
      public void show(){system.out.println("person:你好");}
}
作者: 廖智    时间: 2012-10-23 10:38
usiki 发表于 2012-10-22 23:35
你好,像3l时候的情况没有问题,是不是可以理解成,包含main的类中可以有判断语句,而其他的类只能包含变 ...


main本身就是函数,是主函数,所以当然可以。




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