Java 方法重载与引用数组类型

1.方法重载

1)方法的签名

  • 方法的签名包含方法名和参数列表
  • 一个类中,不可以有两个方法的签名完全相同,即一个类中不能有两个方法的方法名和参数列表都一样。
public class Test{
    public void print(int x){...};
    public void print(int x){...};            //编译错误,方法签名不能一样
}

public class Test{
    public void print(int x){...};
    public boolean print(int x){...};      //编译正确
}

2)方法的重载

  在Java语言中,允许多个方法的名称相同,但参数列表不同,称之为方法的重载(overload)。

  • 发生在一个类中,方法名相同,参数列表不同
  • 编译器在编译时自动根据方法的签名绑定调用的方法
public class Sum {
	public static void main(String[] args) {
		int x = sum(5,6);
		double y = sum(5.0,6.0);
		System.out.println(x);
		System.out.println(y);
	}
	public static int sum(int x,int y){
		return x+y;
	}
	public static double sum(double x,double y){          //方法重载
		return x+y;
	}
}

/*
运行结果:
11
11.0
*/

3)构造方法

  构造方法是在类中定义的方法,构造方法常用于实现对象成员变量的初始化,不同于其他的方法,构造方法定义有如下两点规则。

  • 构造方法的名称必须与类同名
  • 构造方法没有返回值,但也不能写void

语法:

[访问修饰符] 类名(){

  构造方法体;

}

3.1)this关键字的使用

  this关键字用在方法体中,用于指向调用该方法的当前对象,简单来说:哪个对象调用方法,this指的就是哪个对象,只能用在方法中,方法中访问成员变量之前默认有个this. 。

public void drop(){
    this.row ++;    //将调用该方法对象的成员变量row+1,这样书写概念更佳清晰
}

//为了方便起见,在没有歧义的情况下可以省略this:
public void drop(){
    row ++;
}

  在构造方法中,用来初始化成员变量的参数一般和成员变量取相同的名字,这样会利于代码的可读性,但此时不能省略this关键字,是用来区分成员变量和参数。

public Cell(int row,int col){
    this.row = row;   //将参数列表中的row赋值给类中的成员变量cow
    this.col = col;
}

3.2)默认的构造方法

  • 任何一个类都必须含有构造方法
  • 如果源程序中没有定义,编译器在编译时将为其添加一个无参的空构造方法,即为默认的构造方法
  • 当定义了构造方法后,Java编译器将不再添加默认的构造方法了
class Sum{
    int x,y;
    Sum(int x,int y){
        this.x = x;
        this.y = y;
    }
}

public class Test{
    public static void main(String[] args){
        Sum s = new Sum();                //编译错误,当定义了构造方法Sum(int x,inty){..}之后,编译器不再提供默认的构造方法了
    }
}

3.3)构造方法的重载

  为了使用方便,可以对一个类定义多个构造方法,这些构造方法都有相同的名称(类名),方法的参数不同,称之为构造方法的重载。一个构造方法可以通过this关键字调用另外的一个重载构造方法。

class Sum{
    int x,y;
    Sum(){
        this.x = 0;
        this.y = 0;
    }
    Sum(int x){
        this.x = x;
        this.y = x;
    }
    Sum(int x,int y){
        this.x = x;
        thix.y = y;
    }
}

//以上构造方法重载可以通过this.调用构造方法来进行重载,如下所示

class Sum{
    int x,y;
    Sum(int x,int y){
        this.x = x;
        this.y = y;
    }
    Sum(int x){
        this(x,x);
    }
    Sum(){
        this(0,0);
    }
}

  

2.引用类型数组

1)数组是对象

  • 在Java中,数组属于引用数据类型
  • 数组对象在堆中存储,数组变量属于引用类型,存储数组对象的地址信息,指向数组对象
  • 数组的元素可以看成数组对象的成员变量(只不过类型全部相同)

2)引用类型数组的声明

  • 数组元素可以是任何类型,包括引用类型

3)引用类型数组的初始化

  • 引用类型数组的默认初始值都是null
  • 如果希望每一个元素都指向具体的对象,需要针对每一个数组元素进行“new”运算。
//1.先声明再赋值
Emp[] e = new Emp[3];
e[0] = new Emp("Tom",26);
e[1] = new Emp("Jerry",28);
e[2] = new Emp("Andy",30);

//2.声明的同时赋值
Emp[] e = new Emp[]{
    new Emp("Tom",26),
    new Emp("Jerry",28),
    new Emp("Adny",30)
};

 

4)数组的类型是基本类型数组

  • 数组的元素可以为任意类型,也包括数组类型
int[][] arr = new int[3][];  //arr指向一个数组,该数组有三个元素,每个元素都是int类型数组,长度分别是2,1,3。
arr[0] = new int[2];
arr[1] = new int[1];
arr[2] = new int[3];

arr[0][0] = 1;
arr[0][1] = 2;
arr[1][0] = 3;
arr[2][0] = 4;
arr[2][1] = 5;
arr[2][2] = 6;
arr[2][3] = 7;

时间: 2024-08-27 10:44:04

Java 方法重载与引用数组类型的相关文章

学习日记(九)java方法重载和重写

方法的重载:在一个类中的两个或两个以上的方法,他们方法名相同但是参数列表不同,这种方式称为方法的重载,方法的重载是实现多态性的方式之一. 参数列表不同指的是参数的个数不同或相同的个数但顺序不同或者类型不同,方法重载时返回值类型可以不同,但是仅仅是返回值类型不同的话不可以. java在调用方法的时候,如果精确匹配没有对应的方法,会自动转换匹配相应的方法,例如,如果没有int类型的参数,但是有一个double类型的参数的同名方法,在调用该方法时如果传入int类型的参数,则不会报错,而是把int自动转

java方法——重载2

什么是Java方法重载 方法重载的定义 1 对于同一个类,如果这个类里面有两个或者多个重名的方法,但是方法的参数个数.类型.顺序至少有一个不一样,这时候局构成方法重载. END 方法重载示例 1 public class Test{ public void a( ){ }; public void a( int i){ }; } 说明:在Test类中有两个方法,名字都相同,都是a.在调用方法a时,如果不传参数,则系统会自动调用第一个方法a,如果传入一个 int 类型的参数,则系统调用第二个方法a

Java 方法重载和多态

先来看看什么是方法重载? 方法重载的要求是:方法名相同,参数列表不同(不同的参数类型或者参数顺序或者参数个数).至于方法的其他部分,如方法返回值类型和修饰符,与方法重载没有任何关系.最好加上@Overload注解. 为什么要用方法重载? 重载的目的是方便程序员调用方法.比如,System.out.println()这个函数是用来输出的,当输出的是整数时是用这个方法,当输出一个字符串时还是用这个方法.根据传入参数的不同,自动找到匹配的方法. 以下程序不使用方法重载,试着分析看看有什么缺点. pub

Java 方法重载,方法重写(覆盖),继承等细节注意

1.方法重载(method overload)的具体规范 如果有两个方法的方法名相同,但参数不一致,那么可以说一个方法是另一个方法的重载. 一.方法名一定要相同. 二.方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体. 1.如果参数个数不同,就不管它的参数类型了! 2.如果参数个数相同,那么参数的类型或者参数的顺序必须不同. 三.方法的返回类型.修饰符可以相同,也可不同. 四.main方法也可以被重载 方法重载的作用:可以一个相同的方法传入不同的参数以达到想要的结果 2.方法继承

Java方法重载与重写(静态分派与动态分派)

Java面向对象3个基本特征:继承.封装和多态:多态主要体现在重载和重写: 1.静态分派 静态分派与重载有关,虚拟机在重载时是通过参数的静态类型,而不是运行时的实际类型作为判定依据的:静态类型在编译期是可知的: 1)基本类型 以char为例,按照char>int>long>double>float>double>Character>Serializable>Object>...(变长参数,将其视为一个数组元素) 变长参数的重载优先级最低 (注意char

java 方法重载与重写的归纳

方法重载:Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同.调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法 示例代码: public class Test { //无返回值有有int形的参数 void receive(int i) {System.out.println("i="+i);} //无返回值,有float形的参数 void receive(float f) {Sys

C#面向对象——对象成员、方法重载、引用类库等

一.方法重载: 1.两个函数同名,就互相构成方法的重载关系 2.重载的函数,必须跟其他函数之间具有不同的参数类型或参数个数 二.字段与属性 类的字段: 类里面是可以直接定义变量的,这些变量就叫类的字段,也叫成员变量. 类的属性(扳手): 本身不存储数据,用来给字段赋值和取值的一个存取过程.可以保护字段. 包含读访问器和写访问器两个函数: 读访问器 get { return Name; } 写访问器 set {                 if(value.Length<=3)        

java方法重载学习笔记

java中方法的重载 (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. (2) java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义. 调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性. (3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同.无法以返回型别作为重

好程序员训练营-Java方法重载

<A href="http://www.goodprogrammer.org/" target="blank">android培训</a>------我的java笔记,期待与您交流! 在Java中,同一个类中的多个方法可以有相同的名字,只要它们的参数列表不同就可以,这被称为方法重载(method overloading). 参数列表又叫参数签名,包括参数的类型.参数的个数和参数的顺序,只要有一个不同就叫做参数列表不同. 重载是面向对象的一个基