㈠ java重载构造方法
public class Cat{
private String name;
private int age;
private String foot="鱼";
public Cat(){}
public Cat(String name){
this.name=name;
}
public Cat(String name,int age){
this.name=name;
this.age=age;
}
public void eat(){
}
public void eat(String foot){
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
public String getFoot(){
return foot;
}
public String toString(){
StringBuffer buffer=new StringBuffer();
buffer.append("名叫"+getName()+"的小猫,今年"+getAge()
+"岁,正在吃+getFood()+");
return buffer.toString();
}
public static void main(String[] args){
Cat cat=new Cat("coffei cat",2);
cat.eat("老鼠");
System.out.println(cat);
}
}
㈡ java 构造方法怎么重载
需要在java进行一下操作:
public class apple{public int apple(int a)}
return a
private string apple(string k){return k}
㈢ java的构造方法可以重写吗
构造方法不能被继承,不能重写,但构造方法可以重载。
在一个类中,可以有多个构造方法(方法参数不同) ,即重载,来实现对象属性不同的初始化;但是子类中不能定义一个方法无void无返回值的方法,编译错误,即子类无法继承构造方法,但是子类的构造器中可以调用父类的构造方法(默认自动调用无参构造)。
㈣ Java 构造方法重载后,在构造方法中可以使用this语句进行构造方法之间的调用,
两个构造方法不能用this相互调用,this调用构造方法的最大个数只能是构造方法总数-1
否则会出现无限递归调用。
也就是说两个构造方法不能同时用this调用另一个,会产生无限的递归调用。
如下代码:就会无限递归。
classA{
inta;
intb;
A(inta){
this(a,0);
}
A(inta,intb){
this(a);
thia.b=b;
}
}
㈤ java简答题,构造方法重载为什么
当不写构造方法的重载时,系统会默认提供一个无参数的构造方法。也就是说,在new一个新对象时,没有任何参数,不可以为对象中的属性赋初始值
当你需要在创建对象的时候就为你的属性赋初始值时,就需要自己手动提供一个有参数的构造方法。也就是构造方法的重载,此时系统不再提供默认的无参数的构造方法。
为了防止new一个对象时的不同情况,一般来说,会自己写一个有参数的构造方法的同时,再手动补充无参数的构造方法。在new一个对象是,自己按照参数的不同进行调用。
㈥ Java中方法重载和构造方法的区别
方法重载就是同一个类中,有多个方法,方法名是一样的,但是形参不一样,调用的时候,程序会根据传入的形参不同,而选择对应的方法。例如void a(){} 和 void a(String b)和void a(int b){}就是重载的三个方法。
构造方法也叫构造器,它也是一种方法,也可以重载,它的方法名与类名相同,不用写返回值,也不用加void。例如
class a{
public a(){}
}
另外构造器是在创建此类的对象的时候就会调用的,它的作用是初始化类的对象。 如果你没有为类写构造器,JAVA虚拟机自动为类添加一个无参数的构造器,只是你看不到。
㈦ java中构造方法重载吗
在使用new创建对象时,Java会根据提供的参数来决定构建哪一个构造器。比如在构建neZha时,我们提供了两个参数: 整数150和字符串"shit",这对应第二个构建方法的参数列表,所以Java会调用第二个构建方法。
在Java中,Java会同时根据方法名和参数列表来决定所要调用的方法,这叫做方法重载(method overloading)。构建方法可以进行重载,普通方法也可以重载,比如下面的breath()方法:
public class Test
{
public static void main(String[] args)
{
Human aPerson = new Human();
aPerson.breath(10);
}
}
class Human
{
/**
* breath() 1
*/
void breath()
{
System.out.println("hu...hu...");
}
/**
* breath() 2
*/
void breath(int rep)
{
int i;
for(i = 0; i < rep; i++) {
System.out.println("lu...lu...");
}
}
int height;
}
运行结果:
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
可以看到,由于在调用的时候提供了一个参数: 整数10,所以调用的是参数列表与之相符的第二个breath()方法。
㈧ java 构造方法重载
方法重载:
1.必须在同一个类
2.方法名相同
3.方法参数个数或参数类型(或参数顺序)不同
注:
1.参数顺序指的是参数类型顺序,与参数名字无关,比如show(int a,,Stringa,int c)和show(int c,String b,int a)是一样的方法,非方法重载,因为他们的参数类型顺序一样是int,String,int
2.方法重载与访问权限修饰符和方法返回值无关
调用:
1.当调用的时候,填好方法参数时,它会自动判断参数类型,参数类型顺序,个数,然后再调用相应的重载 方法,当匹配不到相应的重载方法,那么直接编译错误
例子:
方法1. show()
方法2. show(int a,int b)
方法3. show(int a,String b)
方法4. show(String b,int a)
方法5. show(int b,int a)
1. 方法1.2.3.4是重载方法(1与[234]参数个数不同,2与[34]参数类型不同,3与[4]参数类型顺序不同)
2. 方法1.3.4.5是重载方法(1与[534]参数个数不同,5与[34]参数类型不同,3与[4]参数类型顺序不同)
3. 方法2和5非方法重载,因为参数类型顺序一样,跟参数名字无关
4. 以方法1.2.3.4为例,show()会调用方法1,show(1,1)会调用方法2,show(1,"1")会调用方法3
show("1",1)会调用方法4
----------------------------------------------------------------------------------------------------------------
你两个方法名分别是test1,test2,方法名不同,肯定不是方法重载,而且构造方法名必须跟类名一样,不可能出现不同名的构造方法
2.假如test(int i,String s){} test(String s,int i){}
那么这2个构造方法是重载,不会出现编译错误,因为参数类型顺序不同,第一个构造方法参数类型顺序是int,String,第二个构造方法参数类型顺序是String,int
㈨ java构造方法的重载有什么作用,构造不是用来初始化类的成员变量吗,有一个就可以在建立对象时在小括
构造方法重载可以有效降低模型的复杂程度。它可以使不同的参数类型共用同一个方法,提高通用性。
例如,有如下构造方法sum(int a, int b),作用是计算a+b的值。但由于两个参数都是整型,当需要用该方法对两个双精度型的参数初始化时,就会碰到问题。此时,就可以使用重载sum(double a, double b),使得双精度类型同样可以使用该方法。这样,在类外调用该类的构造方法时,无需考虑不同参数类型的情况,可以大幅降低编程复杂性。
㈩ JAVA中方法的重载和构造方法的重载有什么不同
方法的重载是一个类中同一个方法的不同实现,是java多态的一种表现形式
普通方法和构造方法的重载唯一的不同就是普通方法要考虑返回值,而构造方法不需要。
普通方法:
public
int
check(){
.......
return
3;
}
public
String
check(){
.......
return
"3";
}
构造方法:
public
Class(String
s){
.......
}
public
Class(int
a){
.......
}