我是Java新手,我的问题可能看起来太傻了。但请帮助我,因为我没有找到答案,为什么我们总是在main方法中创建对象。
我正在尝试按照我正在阅读的书中的说明执行以下代码。但是这个程序没有主要方法。所以我试图看看如何才能执行此操作。我甚至尝试在同一个包中创建另一个类。但我很无能。
public class MyDate {
private int day=1;
private int month=1;
private int year=2000;
public MyDate(int day,int month,int year)
{
this.day=day;
this.month=month;
this.year=year;
}
public MyDate(MyDate date)
{
this.day=date.day;
this.month=date.month;
this.year=date.year;
}
public MyDate addDays(int moreDays)
{
MyDate newDate=new MyDate(this);
newDate.day=newDate.day+moreDays;
return newDate;
}
@Override
public String toString()
{
return " "+day+ "-"+month+ "-"+year;
}
}
所以我尝试在这个相同的包中用main方法创建另一个类。我在那里创建了MyDate
类的对象,并尝试访问方法addDays
。但即使那样也行不通。该计划如下。
public class NewClass {
public static void main (String args[])
{
MyDate date1 = null,c;
c=date1.addDays(5);
}
}
答案 0 :(得分:0)
Class具有访问限制,因为它只是一个容纳其中的属性和方法的容器。 Instance / Object表示Class的所有权。因此,要访问Class数据,您需要实例化对该类的引用(称为Object),您可以通过该引用访问数据。
答案 1 :(得分:0)
这是因为一个程序需要一个静态入口点(main方法本身),并且大多数功能通常在类中实现,以使用您需要一个实例(类的对象)的类提供的功能。
对于问题的编辑版本,您忘记调用构造函数:
public class NewClass {
public static void main (String args[])
{
MyDate date1 = new MyDate(1,1,2000); // new calls the constructor (creates a new object)
MyDate c=date1.addDays(5);
}
}
答案 2 :(得分:0)
事实并非如此。如果我们想在任何类中调用任何方法,我们必须初始化该类(正如你所说的创建Object)。在Java
主方法是一个程序的起点,这就是为什么很多时候你会看到这样的东西..