JAVA构造方法重载的问题

public class apple{
public int apple(int a){
return a;
}
private string apple(string k){
return k;
}

}
这里的private与类的public不同可以么?还有就是这两个方法的修饰都不要一个是public 一个private 会怎么样 麻烦大家告诉一个 这个有什么问题?
类的私有构造函数和非私有的有区别么? 构造方法一定是public的么?

楼主,我来回答你这个问题,我最近在做SCJP的考题,经常碰到这类题。

首先得指出你的错误,构造方法是不能有返回值的,所以你上面的两个方法不是构造方法,而只是刚好和类名相同的成员函数。

构造函数可以是public和private的,也可以是缺省的(就是什么也不写),public 和private的区别是public的构造函数可以在别的类中用new 方法实例化一个对像,比如new apple();private的构造函数就不得在别的类中用new 方法实例化对像,否则编译器就会报错。
说得简单点,public标注的方法或者构造函数可以在所有类中被调用,而private标注的方法或者构构造函数只能在自己类中调用,即使是子类也不能!

满意给分啊 ^^
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-03-05
1. 首先java类的构造函数是没有返回值的,你写的apple只是普通函数而已
2. 类可以有私有构造函数(private)
所以我想,你遇到的问题,应该是不小心给构造函数加上了返回值了吧。

补充:
构造函数对修饰符没有限制。
public是公有修饰,表示包意外的任意类可以创建该类的实例。
private是私有修饰,只有在本类的内部可以创建。
想知道更多百度hi我吧。
第2个回答  2010-03-05
构造方法不能有返回值,你写了int String后这两个方法就不是构造函数了!

构造方法当然可以用private, 在单态模式中就必须得把构造函数设置成private
第3个回答  2010-03-05
方法的修饰符不一样不会影响什么,只不过对外开放的权限不同而已
构造函数不一定是public的,可以是private的,如果是private的话就无法在外面构造这个对象了,只能在类的内部构造
第4个回答  2010-03-05
构造方法一定是public的!

java编程问题,方法重载(overloading)必须满足
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。所以方法重载的要素 方法名相同 参数列表不同 在同一个类中 和返回值类型无关 所以此题选择B,C,E ...

java 构造方法重载
1.参数顺序指的是参数类型顺序,与参数名字无关,比如show(int a,,Stringa,int c)和show(int c,String b,int a)是一样的方法,非方法重载,因为他们的参数类型顺序一样是int,String,int 2.方法重载与访问权限修饰符和方法返回值无关 调用:1.当调用的时候,填好方法参数时,它会自动判断参...

java中关于构造器构造函数构造方法重载方法的困惑
比如说你要将一个字符串和一个整形的数据加起来形成一个字符串.(假设+号默认只能连接两个字符串).这时你就要对+号声明方法:public String +(String s ,int i){}.又如果你想把两个整形的数据连接起来.就要进行方法重载:public String +(inti ,int j){}.方法一:--- public String +(String s...

java构造函数重载错误…求问
构造函数都没有返回值,参数数量一样,类型一样,那么这就是同一个函数,一个类中,一个函数被定义两次是不行的,不能通过编译。构造函数当然可以重载,这种问题你自己可以试试看。

关于一个构造方法重载的报错,初学者简单问题
第1个构造的地方,没有print出来,自然是没有输出了

java语言中构造方法和方法重载在什么时候使用?有什么作用?请详细说明一...
性别、名字,不用创建完成后再一个个去setXX。第二个,方法重载,overload,是同名不同参数的方法。用于方法功能相同或基本相近,参数类型不同的。比如计算面积,计算圆和计算矩形功能类似,可以通过相同名称和不同参数来实现。一楼的哥们说的是重写,override,子类继承父类同名方法,用于多态的。

什么是方法重载?
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。以java为例,我们编写一个方法重载的例子。参数列表的不同体现在以下两点:1、参数的类型不同 2、参数的个数不同 具体例子如下:在java中完成方法重载需要的具体规范如下:1、方法名一定要相同。2、方法的...

java构造函数 重载的问题!大神进
System.out.println(p2.setName());这句话有问题,应该为System.out.println(p2.getName());setName是要设置name,要传参数,不传肯定出错。

关于Java中的重载
方法重载,在JAVA中,也叫: 编译时多态。(由编译的时候来确定调用哪个方法)重载的原则: 向上就近匹配原则 注意: 如果只有print( double d ) 方法,而要调用 print(int) ,则编译器会自动地就近向上匹配 print(double) 方法。但是反过来就不行,因为从大到小会丢失精度, 所以,没有就近向下匹配...

关于Java构造方法的一个问题
D不正确是因为构造函数不只是在对象NEW的时候被执行,你也可以在其它重载构造函数内执行,所以D不正确。例如:public class test { public test() { \/\/这是一个空参构造方法 } public test(String str) { \/\/这是一个有参构造方法,在这个方法内调用了上面的空参构造方法。this();} } 但是最让...

相似回答