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.1.1)this的用法

  • this.成员变量:访问成员变量
  • this.方法名():调用方法
  • this():调用构造方法

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;

案例1:遍历数组类型的数组

public class Test {
public static void main(String[] args) {
int[][] arr = new int[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;
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
int x = arr[i][j];
System.out.println(x);
}
}
}
} /*
运行结果:
1
2
3
4
5
6
*/

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

  1. java方法——重载2

    什么是Java方法重载 方法重载的定义 1 对于同一个类,如果这个类里面有两个或者多个重名的方法,但是方法的参数个数.类型.顺序至少有一个不一样,这时候局构成方法重载. END 方法重载示例 1 pu ...

  2. Java 方法重载和多态

    先来看看什么是方法重载? 方法重载的要求是:方法名相同,参数列表不同(不同的参数类型或者参数顺序或者参数个数).至于方法的其他部分,如方法返回值类型和修饰符,与方法重载没有任何关系.最好加上@Over ...

  3. java方法强制传递引用参数(做为返回值),改变被传递参数值。

    Java传递参数分为2种: 值类型,Java里面也叫简单类型,这种参数类型的传递的是它的副本拷贝: 引用类型,传递的是对象引用地址,如果在方法内改变该参数对象属性即是对原引用对象的改变:如果不想这样传 ...

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

    1.方法重载(method overload)的具体规范 如果有两个方法的方法名相同,但参数不一致,那么可以说一个方法是另一个方法的重载. 一.方法名一定要相同. 二.方法的参数表必须不同,包括参数的 ...

  5. Java 方法重载 方法重写

    方法重载规则 参数个数不同 参数个数相同,但参数列表中对应的某个参数的类型不一样 方法的返回类型和参数名称不参与重载 "编译期绑定",,因为未产生对象,只看参数.引用类型绑定方法 ...

  6. 【知了堂学习笔记】java 方法重载与重写的归纳

    方法重载:Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同.调用方法时通过传递给它们的不同个数和类型的参数来决定 ...

  7. java方法重载(overload)、重写(override);this、super关键简介

    一.方法重载: 条件:必须在一个类中,方法名称相同,参数列表不同(包括:数据类型.顺序.个数),典型案例构 造方重载.  注意:与返回值无关 二.方法重写: 条件: (1)继承某个类或实现某接口 (2 ...

  8. Java方法重载

    Java允许一个类中定义多个方法,只要参数列表不同就行了.如果同一个类中包含了两个或者两个以上的方法的方法名相同,但形参列表不同,则被称为方法重载. /* 参数类型不同的重载 */ public cl ...

  9. java方法重载和重写

    1.java的方法重载和重写,表示两种不同的类型.this关键字,出现在类的构造方法中,代表使用该构造方法所创建的对象.,this可以出现在实例方法中核构造方法中.但是不能出现在类方法中.实例方法只能 ...

随机推荐

  1. .NET Framework 2.0安装问题

    在.NET Framework 2.0安装的时候,如果提示 system.deployment.dll失败,另一个程序正在使用此文件,进程无法访问.这种情况下,我们可能的解决方案是: 关闭掉杀毒软件在 ...

  2. ES5.X相关API和技巧汇总

    https://blog.csdn.net/laoyang360/article/details/77412668

  3. 27.集成EFCore配置Client和API

    copy链接字符串,这是一个官方的字符串,直接复制过来,放在上面. 添加包的引用 引入IdentityServer4.EntityFramework的命名空间 主要是这个地方初始化我们的数据库 Ope ...

  4. 永恒之蓝(EternalBlue)MS17-010

    附加知识: 漏洞来源与背景: 这个漏洞最初是由NSA(美国国家安全局)发现的,但是他们发现漏洞他不讲,然后遭殃了吧. 后来 有一个黑客组织叫:Shadow Brokers (影子经纪人) 入侵了NSA ...

  5. 快速部署Kubernetes集群管理

    这篇文章介绍了如何快速部署一套Kubernetes集群,下面就快速开始吧! 准备工作 //关闭防火墙 systemctl stop firewalld.service systemctl disabl ...

  6. Ext.net Calendar 控件在有模板页的时候,模板页定义了TD的样式造成日历控件的样式丢掉

    Ext.net Calendar 控件在有模板页的时候,模板页定义了TD的样式造成日历控件的样式丢掉 解决方案 在本页面添加下面的样式 <style type="text/css&qu ...

  7. HTML前端入门归纳——控件

    本人一直在从事.net的开发,界面都是采用的WPF,近期花了一个多月进行HTML前端的学习,在这里呢进行学习总结和归纳. 本系列将主要分为4个模块: 控件 样式 布局 JavaScript 根据多年W ...

  8. SEO优化之——hreflang(多语言网站优化)

    用法格式 <link rel="alternate" href="URL" hreflang="zh-cn"> // href ...

  9. 关于表格——增加删除行,鼠标选定(利用JavaScript)

    涉及到的知识点: 1.onmouseover,onmouseout 2.dom getElementByTagName 3.新建节点元素createElement; <!DOCTYPE html ...

  10. 77%的Linux运维都不懂的内核问题

    前言 之前在实习时,听了 OOM 的分享之后,就对 Linux 内核内存管理充满兴趣,但是这块知识非常庞大,没有一定积累,不敢写下,担心误人子弟,所以经过一个一段时间的积累,对内核内存有一定了解之后, ...