0

当我尝试在类内访问时,找不到变量错误m.name = "killer"。请帮忙。

class Movie {

     String name;
     String genre;
     int num;

     public void play()
     {
         System.out.println("start playing");
     }
}

public class MovieObjects{
    public static void main(String[] args) {
        MovieObjects m = new MovieObjects ();
        {
            m.name="Killer"; 
            m.genre = "Romance";
        }
    }
}
4

6 回答 6

5

m是 a MovieObjects,它没有name字段。

你的意思是Movie

public此外,如果您想从其他类访问它们,您应该创建这些字段。
(尽管在同一个包中实际上并不需要)

于 2013-05-20T16:11:13.943 回答
1

你的Movie班级有那些属性,MovieObjects没有。你在寻找

Movie m = new Movie();

代替

MovieObjects m = new MovieObjects ();
于 2013-05-20T16:11:37.797 回答
0

MovieObjects类中没有实例变量名称。您的代码根本没有意义。这是正确的代码。

  public class Movie 
  {
     public String name;
     public String genre;
     public int num;

     public void play()
     {
         System.out.println("start playing");
     }
  }
  public class MovieObjects
  {
     public static void main(String[] args) 
     {
        Movie m = new Movie();
        m.name="Killer"; 
        m.genre = "Romance"; 
     }
  }

但请注意,这是处理实例变量的错误方法。您的实例变量必须定义为私有的,并且只能通过gettersetter方法进行更改。

于 2013-05-20T16:17:39.443 回答
0
class Movie {
     String name;
     String genre;
     int num;

     public void play()
     {
         System.out.println("start playing");
     }
}

public class MovieObjects{
    public static void main(String[] args) {
        Movie m = new Movie();
        {
            m.name="Killer"; 
            m.genre = "Romance";
        }
    }
}
于 2013-05-20T16:11:39.990 回答
0

name 和genre 是Movie 类的变量。因此,如果您想访问它们,请创建一个Movie 对象并访问它们。

于 2013-05-20T16:13:07.773 回答
0

首先,“名称”和“类型”是在 Movie 类而不是 MovieObject 类中定义的。因此,尝试从 MovieObject 的对象访问它们会导致“找不到符号”编译错误。换行:

MovieObjects m = new MovieObjects ();

Movie m = new Movie();

其次,两个赋值语句周围的花括号是多余的。可以删除:

Movie m = new Movie();
 {
  m.name="Killer"; 
  m.genre = "Romance";
 }

应该改为

 Movie m = new Movie();
 m.name="Killer"; 
 m.genre = "Romance";

第三,考虑使用 setter 和 getter 方法来访问成员变量。

于 2013-05-20T16:20:06.280 回答