注册 登录
编程论坛 JAVA论坛

请各位大神帮忙看看为什么编译不了

外星人ii 发布于 2015-04-24 00:21, 590 次点击
public class Person{
    String name;
    String gender;
    int age;
    public void eat(){
        System.out.println("编译不了");
    }
}

*************************************************

public class Text{
    public static void main(String[] args){
        Person MyPerson=new Person();
        MyPerson name="为什么编译不了";
        System.out.println(MyPerson.name);
    }
}


/*
 *这是两个文件来的。
 *在第二个小程序文件中
 *为什么编译不了。
 *不是把第一个文件中的
 *类名放到第二个小程序
 *中就可以编译吗
 *可为什么不行
 */
8 回复
#2
凌风zx2015-04-24 08:42
public class Text{
    public static void main(String[] args){
        Person myPerson=new Person();//变量名首字母小写
        myPerson.name="为什么编译不了"; //对象调用属性  对象.属性
        System.out.println(myPerson.name);
    }
}
#3
林月儿2015-04-24 20:56
package java1;

class Person{
    String name;
    String gender;
    int age;
    public void eat(){
        System.out.println("编译不了");
    }
}

//*************************************************

public class Text{
    public static void main(String[] args){
        Person MyPerson=new Person();
        MyPerson.name="为什么编译不了";
        System.out.println(MyPerson.name);
    }
}
这是放在同一个类文件下的代码运行没问题
你的可能没有将两个类文件放在同一包下
如果没有可以导一下在运行
#4
外星人ii2015-04-24 23:11
回复 2楼 凌风zx
在这里我把那首字母我写错了,(对象.属性)不是写在结束语里吗
#5
秦时的明月夜2015-04-25 19:10
没导包……放到一个包里……就行了……
#6
外星人ii2015-04-25 23:51
回复 5楼 秦时的明月夜
这是对象编译程序,我在另一个程序文件中已经编译好了可是引用不了到这个程序中
#7
凌风zx2015-04-26 01:12
回复 4楼 外星人ii
你那句的意思是给myPerson对象的name属性赋值就是:对象.属性=value;
你用:对象 属性=value;他以为是你声明了一个 myPerson类型的变量name
所以他找不到myPerson这个类型你是在哪定义的
#8
外星人ii2015-04-26 11:00
回复 7楼 凌风zx
在第二个小程序文件中,在第一个小程序文件中已经写好对象了应该不用定义了才对啊
#9
凌风zx2015-04-26 11:38
第一个程序只是定义了一个类叫Person
 Person myPerson=new Person();这句的意思是用Person这个类声明一个变量叫myPerson然后给他赋一个值叫new Person()
new Person()才是对象 把它赋给myPerson所以myPerson代指new Person()这个对象
***加空格***这叫做声明 前面是类型 后面是变量
***加点***这叫做调用 前面是对象 后面是属性
你这水平建议再学一遍java基础吧
1