A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 勾尧 中级黑马   /  2012-10-22 22:45  /  1495 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

菜鸟自学中,自己写的代码产生错误,不太清楚怎么错的,请帮忙分析下
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, 下载次数: 29)

错误.JPG

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

1.JPG

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

6 个回复

倒序浏览
应该这样写了
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;
        }

}

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 很给力!

查看全部评分

回复 使用道具 举报
陆建平 发表于 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");
        }
       
}
回复 使用道具 举报
类里面要么是成员变量要么是函数,不能直接在里面写逻辑判断语句的,像楼上所写,可以把逻辑判断语句放在构造函数中,在创建person对象的时候就开始判断了
回复 使用道具 举报
张其辉 发表于 2012-10-22 23:05
类里面要么是成员变量要么是函数,不能直接在里面写逻辑判断语句的,像楼上所写,可以把逻辑判断语句放在构 ...

你好,像3l时候的情况没有问题,是不是可以理解成,包含main的类中可以有判断语句,而其他的类只能包含变量和函数
回复 使用道具 举报
其实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:49
7#
usiki 发表于 2012-10-22 23:35
你好,像3l时候的情况没有问题,是不是可以理解成,包含main的类中可以有判断语句,而其他的类只能包含变 ...


main本身就是函数,是主函数,所以当然可以。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马