方法的重载

  概念:多个同名但是不同参数的方法称为方法的重载

  作用:编译器会根据调用时传递的实际参数自动判断具体调用的是哪个重载方法

  特点:方法名相同;同一作用域;参数不同:数量不同 类型不同 顺序不同

  注意:方法重载跟方法的返回值类型没有任何关系,所以只有返回值不同的方法不能构成重载

构造方法的重载

  作用:初始化对象时会传不同的参数,因此需要在一个类中定义多个构造方法,即进行构造方法重载

  注意:无参的构造方法,只有在该类没有声明任何构造方法的时候,才是默认存在的;

       只要声明了其他带参的构造方法,无参的构造方法将不会默认存在,而是必须声明才可以使用;

创建对象

  创建:使用new来创建类的对象

  作用:访问属性;调用方法

创建对象的过程

  假设存在一个类Person,创建对象语句如下所示 Person p=new Person();

  将上面的语句分为两个步骤: Person p;  p=new Person();

  创建一个对象后,其实有两个实体:

    对象引用变量,在栈空间,即p,称为引用,或句柄,存的是对象的虚地址;

    对象本身,即使用new Person()在堆空间里创建的实体,将对象的属性值存储到堆里

    可以使用引用变量操作对象的属性和方法;

调用方法

  类名  对象名 = new 该类的构造方法();   通过创建对象来调用无参的构造方法

  对象名.方法名(参数);             通过对象名调用有参方法

  方法名()                 方法名直接调用

  类名.方法名() 调用              类名.间接调用

代码示例

 package summary1;

 //构造方法、方法的重载以及调用
public class Method
{
Method()
{ //创建一个无参的构造方法、没有返回值
System.out.println("求任意两个数据类型的和"); //方法体:打印输出语句
}
Method(String name)
{ //构造方法重载:参数数量不同:有一个String类型参数、没有返回值
System.out.println(name+"准备用方法重载来实现"); //方法体、使用"+"连接符
}
static void add() //这是一个静态方法、可以直接调用
{ //创建一个无参的方法:add
System.out.println("接下来准备传参计算"); //返回值类型是void
}
static int add(int a,int b)
{
int sum = a+b; //方法重载:参数数量不同:定义两个整数的求和方法:add
System.out.println("两个整数的和是:"+sum); //返回值是int
return sum;
}
void add(double a,double b)
{
double sum = a+b; //方法重载:参数类型不同:定义两个浮点数的求和方法:add
System.out.println("两个浮点数的和是:"+sum); //返回值类型是void
}
double add(int a,double b)
{
double sum = a+b; //方法重载:参数类型不同:定义一个整数和一个浮点数的求和方法:add
System.out.println("一个整数和一个浮点数和是:"+sum ); //返回值类型是double
return sum;
}
double add(double b,int a)
{
double sum = a+b; //方法重载:参数顺序不同:定义一个浮点数和一个整数的求和方法:add
System.out.println("一个浮点数和一个整数和是:"+sum ); //返回值类型是double
return sum;
}
public static void main(String[] args)
{
Method m1 = new Method(); //创建对象时自动调用了无参的构造方法
Method m2 = new Method("张三"); //创建对象时传参调用了有参的构造方法
add(); //静态方法无需创建可以直接调用
Method.add(1,2); //也可以用类名.方法名()来调用
m1.add(1.2,2.3); //创建对象后、传参用对象名调用有参方法
m2.add(4,5.5); //重载的作用:根据参数类型自动调用了一个整数和一个浮点数的求和方法
m2.add(6.6,7); //重载的作用:根据参数类型自动调用了一个浮点数和一个整数的求和方法
}
}

Java方法、构造方法的重载;创建对象;调用方法的更多相关文章

  1. Java编译器如何生成重载和覆盖方法代码

    下面是一个很简单的例子,关于Java中的多态:方法重载和方法覆盖: 多态指的是方法在不同的时刻表现出不同的形式:在编译期间,这被叫做方法重载:方法重载允许相关的方法被同一个方法名字调用,这有时候被叫做 ...

  2. java的构造方法 this 重载

    this1.隐含的局部变量在方法中指向调用该方法的对象()使用:当成员变量与局部变量同名的时候,通过this说明哪一个是成员变量.(this指向的是成员变量) 2.作为当前类的构造方法名存在作用:在构 ...

  3. C# 程序开始主要是写类和方法 的基本步骤和调用方法

    主程序的使用方式以及调用方法字段.属性.方法 using System; using System.Collections.Generic; using System.Linq; using Syst ...

  4. C#反射、方法调用、自动调用方法、根据按钮名称调用方法、C#按钮权限管理

    根据按钮名称,直接调用方法,适用于用户对按钮的操作权限管理. /// <summary> /// 菜单按钮点击事件 /// </summary> void usrMenu1_U ...

  5. C# 通过方法的字符串名动态调用方法 反射实现

    通过字符串执行方法,在可能会调用不同方法时对不同方法进行调用 以下为实例: public class ABC { string str = "通过反射执行的方法"; //Class ...

  6. java 类中定义接口的调用方法

    public class Human { public interface MyAction { public void getPower(); } } public class Test{ publ ...

  7. Java学习----构造方法的重载

    一个类中有多个同名的参数不一样(参数的个数,参数的类型,参数的顺序)的构造方法 public class Student { public Student() { System.out.println ...

  8. java Vamei快速教程03 构造器和方法重载

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在方法与数据成员中,我们提到,Java中的对象在创建的时候会初始化(initial ...

  9. PHP 重载 __call() _callStatic方法

    在C++和java中,可以函数参数的个数或类型来进行重载.但php是弱类型的语言,无法采用传统的方法.若下面这样: class Person{ function fun1($a) { echo 'fu ...

  10. 通过反射获取及调用方法(Method)

    1.获取方法使用反射获取某一个类中的方法,步骤:①找到获取方法所在类的字节码对象②找到需要被获取的方法 Class类中常用方法: public Method[] getMethods():获取包括自身 ...

随机推荐

  1. 动态加载JS脚本到HTML

    如果用原生态的js 有2中方法  1.直接document.write  <script language="javascript">      document.wr ...

  2. 洛谷2971 [USACO10HOL]牛的政治Cow Politics

    原题链接 假设只有一个政党,那么这题就退化成求树的直径的问题了,所以我们可以从此联想至\(k\)个政党的情况. 先处理出每个政党的最大深度,然后枚举每个政党的其它点,通过\(LCA\)计算长度取\(\ ...

  3. shell统计昨天的独立ip

    test.txt --| --| --| --| --| --| --| --| --| shell命令 yesterday=`date +%Y-%m-%d -d -1days` awk -v yes ...

  4. Laravel自定义Api接口全局异常处理

    在做API时,需要对一些异常进行全局处理,比如添加用户执行失败时,需要返回错误信息 // 添加用户 www.bcty365.com $result = User::add($user); if(emp ...

  5. 【C++】c++中栈 队列 的应用

    C++中提供了STL模板statck 在使用的时候更为方便 除了一般的队列外 还有STL更有双向队列可以使用 #include<deque> 声明:deque <type > ...

  6. Java第2章笔记

    1.什么是变量:在程序运行过程中它的值是允许改变的量 2.java中常用的数据类型分为四类八种  第一类:整型   int(整数类型)     byte(字节类型)    short(短整形)     ...

  7. 使用ServiceDesk Plus保证及时解决问题,防止违反SLA

  8. 通用Mapper

    原理是:拦截器 1.假设:使用MyBatis只需要定义Mapper接口,无需编写Mapper.xml文件 如果实现无需编写Mapper.xml文件,我们必须要实现动态拼接SQL 如何实现动态拼接SQL ...

  9. Mysql导入excel数据,解决某些特殊字符乱码问题

    问题 做项目需要从excel表格导入到mysql的数据库表中,excel表格中的“规格”字段的“×”符号导入数据库表中,会出现部分数据的“×”这个符号会乱码,成“?”的形式. 解决方法 打开excel ...

  10. 2019.01.13 loj#6515. 贪玩蓝月(线段树分治+01背包)

    传送门 题意简述:有一个初始为空的双端队列,每次可以在队首和队尾插入或弹出一个二元组(wi,vi)(w_i,v_i)(wi​,vi​),支持询问从当前队列中选取若干个元素是的他们的和对 MODMODM ...