java中的简单对象示例

时间:2013-05-20 16:09:02

标签: java object

当我尝试访问类中的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";
        }
    }
}

6 个答案:

答案 0 :(得分:5)

mMovieObjects,其中没有name字段。

您的意思是Movie吗?

此外,如果您想从其他课程访问这些字段,则应填写字段public (虽然在同一个包中实际上并不需要)

答案 1 :(得分:1)

您的Movie班级具有这些属性,MovieObjects没有。你在找

吗?
Movie m = new Movie();

而不是

MovieObjects m = new MovieObjects ();

答案 2 :(得分: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";
        }
    }
}

答案 3 :(得分:0)

name和genre是Movie class的变量。如果你想访问它们,那么创建一个Movie对象并访问它们。

答案 4 :(得分: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"; 
     }
  }

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

答案 5 :(得分: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方法来访问成员变量。