Java基础03 构造器与方法重载(转载)
定义构造器
构造器(constructor)是一个方法。像普通方法一样,我们在类中定义构造器。构造器有如下基本特征:
- 构造器的名字和类的名字相同
- 构造器没有返回值
public class Test{
    public static void main(String[] args){
        Human aPerson = new Human(160);
    System.out.println(aPerson.getHeight());
    }
}
class Human{
    /**
     * construnctor
     */
    Human(int h){
        this.height = h;
        System.out.println("I'm born");
    }
    /**
     * accessor
     */
    int getHeight(){
        return this.height;
    }
    int height;
}
上面的程序会打印
160
- 为数据成员提供初始值 this.height = h;
- 执行特定的初始操作 System.out.println("I'm born");
初始化方法的优先级
public class Test{
    public static void main(String[] args){
        Human aPerson = new Human(160);
    System.out.println(aPerson.getHeight());
    }
}
class Human{
    /**
     * construnctor
     */
    Human(int h){
        this.height = h;
    }
    /**
     * accessor
     */
    int getHeight(){
        return this.height;
    }
    int height = 170;
}
运行结果为:
160
对象最终的初始化值与构建方法中的值一致。因此:
构建方法 > 显式初始值 > 默认初始值 (事实上优先级与初始化时的执行顺序有关)
方法重载
public class Test{
    public static void main(String[] args){
        Human neZha = new Human(150,"shit");
    System.out.println(neZha.getHeight());
    }
}
class Human{
    /**
     * construnctor 1
     */
    Human(int h){
        this.height = h;
        System.out.println("I'm born");
    }
    /**
     * construnctor 2
     */
    Human(int h,String s){
        this.height = h;
        System.out.println("Ne Zha:I'm born,"+s);
    }
    /**
     * accessor
     */
    int getHeight(){
        return this.height;
    }
    int height ;
}
运行结果:
Ne Zha: I'm born, shit
150
上面定义了两个构造器,名字都是Human。两个构造器有不同的参数列表。
在使用new创建对象时,Java会根据提供的参数来决定构建哪一个构造器。比如在构建neZha时,我们提供了两个参数: 整数150和字符串"shit",这对应第二个构建方法的参数列表,所以Java会调用第二个构建方法。
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...
总结
constructor特征: 与类同名,无返回值
constructor目的: 初始化,初始操作
方法重载: 方法名 + 参数列表 -> 实际调用哪一个方法
Java基础03 构造器与方法重载(转载)的更多相关文章
- Java基础03 构造器与方法重载
		作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在方法与数据成员中,我们提到,Java中的对象在创建的时候会初始化(initial ... 
- java Vamei快速教程03  构造器和方法重载
		作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在方法与数据成员中,我们提到,Java中的对象在创建的时候会初始化(initial ... 
- 要想学好Java编程,构造器、方法重载、this关键字、垃圾回收机制,这4关一定要过!
		有人说,你应该关注时事.财经,甚至流行的电影.电视剧,才有可能趁着热点写出爆文:有人说,你别再写“无聊”的技术文了,因为程序员的圈子真的很小,即便是像鸿洋那样的招牌大牛,文章是那么的干货,浏览量有多少 ... 
- Java基础19-封装、方法重载、构造方法(构造函数)
		1.封装 封装就是把不想或者不该告诉别人的东西隐藏起来,把可以告诉别人的公开 做法:修改属性的访问权限来限制对属性的访问.并为每一个属性创建一对取值方法和赋值方法,用于对这些属性的访问 class D ... 
- JAVA基础语法:函数(方法)、类和对象(转载)
		4.JAVA基础语法:函数(方法).类和对象 函数 在java中函数也称为方法,是一段具备某种功能的可重用代码块. 一个函数包括这几部分: 函数头 函数头包括函数访问修饰符,函数返回值类型, 函数名, ... 
- Java基础 之 System.getProperty()方法
		Java基础 之 System.getProperty()方法大全 public static void main(String[] args) { System.out.println(" ... 
- Java基础-synchronized关键字的用法(转载)
		synchronized--同步 顾名思义是用于同步互斥的作用的. 这里精简的记一下它的使用方法以及意义: 当synchronized修饰 this或者非静态方法或者是一个实例的时候,所同步的锁是加在 ... 
- Java基础(四)方法和数组
		一.方法 1.方法的定义 方法也叫函数,就是一个能独立完成某个功能的一段代码.方法可以看作一个整体. 语法: 修饰符 返回类型 方法名字(数据类型 变量名,数据类型 变量名,……[形式参数(0个到n个 ... 
- Java自学-类和对象 方法重载
		什么是Java 方法重载 方法的重载指的是方法名一样,但是参数类型不一样 步骤 1 : attack方法的重载 有一种英雄,叫做物理攻击英雄 ADHero 为ADHero 提供三种方法 public ... 
随机推荐
- 简单抓取安居客房产数据,并保存到Oracle数据库
			思路和上一篇差不多,先获取网站html文件,使用BeautifulSoup进行解析,将对应属性取出,逐一处理,最后把整理出的记录保存到oracle中,持久化储存. '''Created on 2017 ... 
- easyui 只刷新当前页面的数据 datagrid reload 方法
			$('#refreshbtn').click(function() { $("#t_auclot").datagrid("reload",serializeFo ... 
- C/C++ Windows移植到Linux
			近期写了有关Socket的程序,需要从windows移植到linux.现把有用的东东收集整理记录下来. 1.头文件windows下winsock.h或winsock2.h:linux下netinet/ ... 
- Python 的 LEGB 规则(转载)
			转载:https://mp.weixin.qq.com/s?timestamp=1498528588&src=3&ver=1&signature=DfFeOFPXy44ObCM ... 
- Gitlab备份、迁移、恢复和升级
			Gitlab备份.迁移.恢复和升级 自建的Gitlab服务器常常会因为使用时间的增长,其空间容量等硬件需求都需要升级,或者迁移至更高配置的服务器上.备份.迁移.恢复.升级过程如下 1.gitlab备份 ... 
- C# 0-1背包问题
			0-1背包问题 0-1背包问题基本思想: p[i,j]表示在前面i个物品总价值为j时的价值最大值.str[i, j]表示在前面i个物品总价值为j时的价值最大值时的物品重量串. i=0 或者j=0时: ... 
- js 自定义事件 包含 添加、激活、销毁
			1.思路 (1)构思 var eventTarget = { addEvent: function(){ //添加事件 }, fireEvent: function(){ //触发事件 }, remo ... 
- 【Excle】文本日期转化为日期格式
			现存在一列文本格式的日期 需要将该列转化为日期格式 方法一:使用分列 数据→分列,第三步选择[日期] 方法二:使用text函数 公式得到的结果为: 但是这样转化后的是文本型日期,需要转化为日期型得先转 ... 
- C语言 | 计算器实现 version 2.
			在之前版本中使用栈结构来实现,但由于51单片机不支持malloc函数,所以使用C语言又写了一个计算器版本. 通过数组存放值和操作符模拟栈操作. 实现代码: #include <stdio.h&g ... 
- 基于STC12C5A的MINI3216多功能点阵时钟
			代码地址如下:http://www.demodashi.com/demo/12862.html 基于STC12C5A的MINI3216多功能点阵时钟 硬件详解 PCB 硬件原理图 主控模块 max72 ... 
