小弟着刚开始学,哈哈。
public class Point
{
Point()
{
}
Point pt=new Point();
}
在这段代码中,“Point pt=new Point();”这句话中的两个“Point”分别指的是类名,还是构造方法的名字啊?
假如执行下边这个程序
public class Point
{
Point(int x,int y)
{
x=5;
y=5;
}
Point pt=new Point();
}
会报错,说找不到符号。所以我想“Point pt=new Point();”这句话中的第二个Point指的应该是构造函数吧?第一个指的是类名?
“Point pt=new Point();”这句话的意思是给类Point建立一个名字叫pt对象吧?那我又感觉两个Point值得应该是类名啊。不知道我说得清楚不清楚,还望大家给指导一下哈,谢谢了。
public class Point
{
Point()
{
}
Point pt=new Point();
}
在这段代码中,“Point pt=new Point();”这句话中的两个“Point”分别指的是类名,还是构造方法的名字啊?
假如执行下边这个程序
public class Point
{
Point(int x,int y)
{
x=5;
y=5;
}
Point pt=new Point();
}
会报错,说找不到符号。所以我想“Point pt=new Point();”这句话中的第二个Point指的应该是构造函数吧?第一个指的是类名?
“Point pt=new Point();”这句话的意思是给类Point建立一个名字叫pt对象吧?那我又感觉两个Point值得应该是类名啊。不知道我说得清楚不清楚,还望大家给指导一下哈,谢谢了。
大概就是上面我说的表达式。
你第二个类中因为没有指出类的默认构造方法。所以就报错。
public class Point
{
Point(int x,int y)
{
x=5;
y=5;
}
} 下面的调用
Point pt=new Point(); 根本不会出现问题呀,因为每一个类,都会有自己的无参数的构造函数的!
JAVA都有默认的构造函数的
class Father{}
class Child extends Father{}
Father f = new Child();
小弟着刚开始学,哈哈。
public class Point
{
Point()
{ }
Point pt=new Point();
}
在这段代码中,“Point pt=new Point();”这句话中的两个“Point”分别指的是类名,还是构造方法的名字啊?
Point 是变量名. 即引用变量,因为跟类名一样,也叫类类型. new Point() 就是实例化Point 类, 使它产生一个对象.
public class Point
{
Point(int x,int y)
{
x=5;
y=5;
}
Point pt=new Point();
}
会报错,说找不到符号。所以我想“Point pt=new Point();”这句话中的第二个Point指的应该是构造函数吧?第一个指的是类名?
“Point pt=new Point();”这句话的意思是给类Point建立一个名字叫pt对象吧?那我又感觉两个Point值得应该是类名啊。 构造方法 的调用 只有在 进行类的实例化的时候 才能进行调用.
比如 : Point pt=new Point(100,20); 因为你的构造函数有两个参数.所以这里传两个参数.介意你先看看教程..
但若你写了一个带参数的构造方法,如你这里的Point(int x,int y){...},而没写无参数构造方法的话,系统不再会给你添加无参数构造方法,因而,你就不能再使用无参数构造方法来创建该类的实例,只能使用你写过的带参数构造方法来创建类的实例。在你没有类的继承关系(即你的类仅继承自Object,不会被其它类继承)的时候,这样写,只要记住不用无参数构造方法来创建类的实例倒也会是相安无事的;
但一旦你写一个新类继承自这个类,只写带参数构造方法,而不写无参数构造方法,还是会出错,因为继承的新类在初始化时还会去调用被继承类的无参数构造方法。
因此,你在重写一个类的构造方法时,写了带参数的构造方法,就应该同时写一个无参数构造方法。学习,先要认真仔细的领会相关原理,弄懂为什么比会术语解释更重要!