Java集合重新add、set、方法

有大神帮忙吗,Java的方法重写,add添加,set方法,刚学习的,请求帮帮忙

4个回答

重写就是使用相同的方法名,参数,和返回类型。重写的是从父类继承的方法。

提到重写就要说一说继承。这个我们可以举Object类和String 类来说,因为说有的类都要继承自object类,重写就是你作为子类可以重新定义父类的一个方法。
比如string重新定义了object里面tostring的方法实现。object里面的tostring实现如下

``` public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

String 重写实现方法如下

```public String toString() {
        return this;
    }

这个就是重写,即重新定义父类的实现。
add和set是作为一种外部的对象访问本对象里面私有属性的一种方法。比如一般我们说JavaBean。

```public class User {

/*姓名*/
private String name;
/*年龄*/
private int age;
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public int getAge() {
    return age;
}
public void setAge(int age) {
    this.age = age;
}

public void addAge(){
    this.age++;
}

public void addAge(int year){
    this.age+=year;
}

}

因为为了安全性或者其他原因,有一些类的属性都是私有的,是不允许外界直接访问的,那么如果外界要对他进行操作怎么办呢,这个时候就需要get和set方法。
来进行数据的操作。
你可以看到有两个add的方法,只是一个有参数一个没有参数。这个叫做方法的重载,重载就是说,方法名称一致,但是参数的数量,顺序不一样就可以重载。
注意,参数都是形参,也就是说如果参数的类型都是相同的话,顺序不同也是不可以重载的。如果类型相同,必须数量不一致才可以重载。
这些东西你可以参考ArrayList的源码进行学习理解。里面包含重写,重载,set,add的应用。

 class FatherClass{
    private String name;
    public int add(int a,int b){return a+b;};
    public void set(String name){this.name = name;};
}

class SonClass extends FatherClass {
    //重写add
    public int add(int a,int b){int c = 1;return a+b+c;};
    public void set(String name){name = "";}
}

调用SonClass的方法时,就覆盖了父类的方法,因为重写了 add 方法,在计算时就会以子类的为准

方法的定义在Java中可以使用多种格式,方法暂时使用如下格式进行定义。
【方法的定义格式】
public static 返回值 方法名(类型 参数1,参数2,,,,){
程序语句;
[return 表达式];
}
方法重载

 public class MethoDemo02{
    public static void main(String args[]){
        int one = addOne(10,20) ;       // 调用整型的加法操作
        float two = addTwo(10.3f,13.3f) ;   // 调用浮点数的加法操作
        System.out.println("addOne的计算结果:" + one) ;
        System.out.println("addTwo的计算结果:" + two) ;
    }
    // 定义方法,完成两个数字的相加操作,方法返回一个int型数据
    public static int addOne(int x,int y){
        int temp = 0 ;          // 方法中的参数,是局部变量
        temp = x + y ;          // 执行加法计算
        return temp ;           // 返回计算结果
    }
    // 定义方法,完成两个数字的相加操作,方法的返回值是一个float型数据
    public static float addTwo(float x,float y){
        float temp = 0 ;        // 方法中的参数,是局部变量
        temp = x + y ;          // 执行加法操作
        return temp ;           // 返回计算结果
    }
};

运行结果为:
addOne的计算结果:30
addTwo的计算结果:23.6

从MethoDemo02的代码可以看出,同样的加法操作应该统一为add()方法才对。所谓的方法重载就是方法的名称相同,但参数的类型和参数的个数不同。通过传递参数扥个数及类型的不同,可以进行完成不同的操作。
【验证方法的重载】

 public class MethoDemo03{
    public static void main(String args[]){
        int one = add(10,20) ;      // 调用整型的加法操作
        float two = add(10.3f,13.3f) ;  // 调用浮点数的加法操作
        int three = add(10,20,30) ; // 调用有三个参数的加法操作
        System.out.println("add(int x,int y)的计算结果:" + one) ;
        System.out.println("add(float x,float y)的计算结果:" + two) ;
        System.out.println("(int x,int y,int z)的计算结果:" + three) ;
    }
    // 定义方法,完成两个数字的相加操作,方法返回一个int型数据
    public static int add(int x,int y){
        int temp = 0 ;          // 方法中的参数,是局部变量
        temp = x + y ;          // 执行加法计算
        return temp ;           // 返回计算结果
    }
    public static int add(int x,int y,int z){
        int temp = 0 ;          // 方法中的参数,是局部变量
        temp = x + y + z ;          // 执行加法计算
        return temp ;           // 返回计算结果
    }
    // 定义方法,完成两个数字的相加操作,方法的返回值是一个float型数据
    public static float add(float x,float y){
        float temp = 0 ;        // 方法中的参数,是局部变量
        temp = x + y ;          // 执行加法操作
        return temp ;           // 返回计算结果
    }
};

运行结果:
add(int x,int y)的计算结果:30
add(float x,float y)的计算结果:23.6
(int x,int y,int z)的计算结果:60

从程序可以看出add()方法被重载了3次而且每次重载时的参数类型或个数都有不同,所以在调用时,会根据参数的类型和个数自动进行区分。
注意:方法的重载一定只是在参数上的类型或个数有所不同
详见:方法的声明及使用
继承的基本概念

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问